EF代码首先访问HasMaxLength值

时间:2013-01-17 18:58:32

标签: entity-framework ef-code-first

我想首先使用EF代码获取我定义的列的最大长度。我需要确保插入的值不超过最大长度:

this.Property(t => t.COMPANY_ID)
             .HasMaxLength(30);

有什么建议吗?

1 个答案:

答案 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脚手架,它也可以自动生成与您为实体指定的注释一致的验证。