有没有办法在带有DataAnnotations的model.edmx中生成数据库对象(比如Required,StringLength)?
答案 0 :(得分:0)
当您对EF使用数据库第一种方法时,所有类都生成为partial
类。这意味着您可以将定义溢出到两个或更多源文件中。 如果您对生成类进行了更改,则会覆盖。
假设您有EF生成的部分用户类
public partial class User
{
public string Username { get; set; }
public string Telphone { get; set; }
}
现在在DataAnnotations
的属性上使用User
,您将在同一名称空间中创建一个具有相同名称的新源文件,并将MetadataType
属性用作:
[MetadataType(typeof(UserMetaData))]
public partial class User
{
public string Username { get; set; }
public string Telphone { get; set; }
}
public class UserMetaData
{
[Required]
[Display(Name = "User name")]
public string Username { get; set; }
[DataType(DataType.PhoneNumber)]
[Display(Name = "Telephone number")]
public string Telephone { get; set; }
}
如您所见,我在第二个示例中使用了MetadataType
属性,该属性指定了与数据模型类关联的元数据类。