2

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

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

有什么建议么?

4

1 回答 1

1

我理解您的问题的方式,您的真正需要似乎是您要确保实体的属性(在本例中为 COMPANY_ID)不超过某个最大长度(在本例中为 30)。

您可以考虑使用数据注释(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 脚手架,它还可以自动生成与您为实体指定的注释一致的验证。

于 2013-01-18T13:13:55.400 回答