我在 SQL Server CE (
.sdf
) 数据库中有一个使用 NText
数据类型的表。这种类型的数据在一列中最多可以存储 32767 个字符,但是当我想用 EF 保存这个字符数的字符串时,会出现错误,但是 SdfViewer 软件可以存储相同的字符串。
我也用SQL查询完成了这个,但它仍然抛出错误。
.Net版本:7
C#代码:
Db.table.Add(new table
{
Value = "" //String length 32767
});
Db.SaveChanges();
错误:
一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。
您需要像这样定义字符串属性来告诉数据库引擎该字段允许超过 4000 个字符:
[MaxLength]
public string Value { get; set; }
或
modelBuilder.Entity<EntityName>().Property(p => p.Value).IsMaxLength();
我在 2011 年在博客上谈到了这个问题!