我似乎理解在数据库优先的情况下帮助MetadataTypeAttribute向模型添加验证背后的原因,因为我们希望避免在下次从数据库生成模型时覆盖的更改.
我注意到很少有人MetadataType使用Code First方法定义验证,并且他们的实体类不可能被某种自动生成的代码覆盖.
将这些DataAnnotations直接应用于实际的Entity类是否有意义,而是将它们分成部分类定义,然后使用链接MetadataType,即使使用Code First方法定义实体模型?
public class MyEntity
{
[Required]
public string Name { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
VS
public partial class MyEntity
{
public string Name { get; set;}
}
[MetadataType(typeof(MyEntityMetadata))]
public partial class MyEntity
{
}
public class MyEntityMetadata
{
[Required]
public string Name { get; set;}
}
Run Code Online (Sandbox Code Playgroud)