我想首先使用EF代码获取我定义的列的最大长度。我需要确保插入的值不超过最大长度:
this.Property(t => t.COMPANY_ID)
.HasMaxLength(30);
有什么建议吗?
答案 0 :(得分:1)
我理解你的问题的方式,你真正的需要似乎是你要确保实体的属性(在这种情况下是COMPANY_ID)不超过某个最大长度(在这种情况下为30)。 / p>
您可以考虑使用数据注释(System.ComponentModel.DataAnnotations和System.ComponentModel.DataAnnotations.Schema),而不是像这样执行手动检查,尤其是因为您仍然首先使用代码。像这样:
public class MyEntity
{
[MaxLength(30)]
public string MyProperty {get; set;}
[Column(TypeName="Date")]
public DateTime MyDate {get; set;}
}
您可以设置多个最大长度。如您所见,您可以指定数据库中应反映的数据类型。您还可以指定是否需要属性等等。 EF将自动为您管理此项,如果您的实体不符合数据注释设置的标准,则会为您引发异常。如果您使用MVC脚手架,它也可以自动生成与您为实体指定的注释一致的验证。