【发布时间】:2011-08-29 06:38:12
【问题描述】:
我首先使用 EF4 4.1 代码并尝试使用 SQLCE 作为数据源。
指向 SQL Server 2008 实例时一切正常,但是当我更改为 SQLCE 时,出现以下异常:
不支持 MaxLength 大于 4000 的字符串列。
这是它抱怨的属性,你可以看到它的长度设置为 1024 个字符,所以我很难理解它为什么抱怨 4000 个字符?
[Required]
[DataType(DataType.Text), RegularExpression("http://www.*"), StringLength(1024)]
[Display(Name = "Page URL (http://www.)")]
public string Url { get; set; }
这是我的连接字符串:
<add name="DataContext" connectionString="Data Source=|DataDirectory|db.sdf" providerName="System.Data.SqlServerCe.4.0" />
这是来自 global.asax 的数据库初始化器:
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DataContext>());
任何想法我错过了什么?
谢谢:)
【问题讨论】:
-
您确定没有其他超过 4000 个字符长度的字符串列吗?如果您从属性中删除
StringLength或DataType会发生什么?如果将 EntityFramework.dll 中的StringLength替换为MaxLength会发生什么? -
同样的问题...我感觉数据库没有正确生成,抛出的异常是更深层次问题的结果。
标签: asp.net entity-framework-4 sql-server-ce