我想先获取我使用 EF 代码定义的列的最大长度。我需要确保插入的值不超过最大长度:
this.Property(t => t.COMPANY_ID)
.HasMaxLength(30);
有什么建议么?
我想先获取我使用 EF 代码定义的列的最大长度。我需要确保插入的值不超过最大长度:
this.Property(t => t.COMPANY_ID)
.HasMaxLength(30);
有什么建议么?
我理解您的问题的方式,您的真正需要似乎是您要确保实体的属性(在本例中为 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 脚手架,它还可以自动生成与您为实体指定的注释一致的验证。