Asp.net EF4代码优先&;SQLCE 4.0-生成数据库时出现异常

Asp.net EF4代码优先&;SQLCE 4.0-生成数据库时出现异常,asp.net,entity-framework-4,sql-server-ce,Asp.net,Entity Framework 4,Sql Server Ce,我首先使用EF4.1代码,并尝试使用SQLCE作为数据源 当指向SQL Server 2008实例时,一切都能正常工作,但是当我更改为SQLCE时,会出现以下异常: 不支持MaxLength大于4000的字符串列 这是它抱怨的属性,正如你所看到的,它的长度被设置为1024个字符,所以我很困惑为什么它抱怨4000个字符 [Required] [DataType(DataType.Text), RegularExpression("http://www.*"), StringLength(1024)

我首先使用EF4.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>());
Database.DefaultConnectionFactory=newsqlceconnectionfactory(“System.Data.SqlServerCe.4.0”);
SetInitializer(新的DropCreateDatabaseIfModelChanges());
你知道我错过了什么吗


谢谢:)

将数据类型更改为NVarchar(从文本)

您确定没有其他长度超过4000个字符的字符串列吗?如果从属性中删除
StringLength
DataType
,会发生什么情况?如果将EntityFramework.dll中的
StringLength
替换为
MaxLength
,会发生什么情况?同样的问题。。。我感觉数据库没有正确生成,抛出的异常是一个更深层次的问题的结果?尝试删除整个数据类型项,但没有成功。