具有DataAnnotations的数据库中的EF Designer

时间:2016-08-05 10:08:23

标签: c#

有没有办法在带有DataAnnotations的model.edmx中生成数据库对象(比如Required,StringLength)?

1 个答案:

答案 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属性,该属性指定了与数据模型类关联的元数据类。