Nes*_*tor 7 ntext code-first sql-server-ce
我有以下型号:
public class Blog
{
public int BlogID { get; set; }
public int CategoryID { get; set; }
[MaxLength(70)]
[Required]
public string BlogTitle { get; set; }
[Column(TypeName="ntext")]
public string BlogContent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已手动将字段设置为数据库中BlogContent的ntext类型(16字节)SQL CE4.
但是,每次我尝试插入超过4000个字符的文本时,都会出现以下错误:
一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性
我试过设置注释[Column(TypeName="ntext")],但这没有区别.当我循环EntityValidationErrors收集时,问题是由BlogContent错误引起的:
字符串不能超过4000个字符
如何定义我的模型以获得ntext字段BlogContent?
似乎忽略了任何数据注释; 假设MaxLength默认情况下,no的字符串限制为4000个字符.
Nes*_*tor 21
我已经解决了,你需要使用:
[Column(TypeName="ntext")]
[MaxLength]
public string BlogContent { get; set; }
Run Code Online (Sandbox Code Playgroud)
详情请见:http: //www.cloudonedesign.com/Blog/Post/how-to-define-ntext-fields-using-code-first-in-net-30
为了
ntext在数据库中创建一个列,并允许模型验证实际知道字符串长度可以超过4,000个字符,我们必须使用这两个项:
[Column(TypeName="ntext")]:这将告诉Code-First在数据库中生成ntext字段.
[MaxLength]:通过使用默认构造函数,它将获取数据库字段的最大长度,而不是猜测字符串的最大长度,即4,000.如果缺少这个或者您明确设置了最大长度,例如[MaxLength(8000)],模型验证将引发错误,说"字符串最大长度为4,000个字符".
| 归档时间: |
|
| 查看次数: |
5101 次 |
| 最近记录: |