Dav*_*eer 1 entity-framework asp.net-mvc-3
使用MVC3和实体框架.
我试图从数据模型中获得验证
问题:在实体框架保存中,如何自动为我的伙伴类添加[MetadataType标签?
[EdmEntityTypeAttribute(NamespaceName="ModelValidationTestModel", Name="Person")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
[MetadataType(typeof(Person_Validation))] // I want EF to put this line in automatically
public partial class Person : EntityObject
Run Code Online (Sandbox Code Playgroud)
...
[Bind(Exclude="PersonID")]
public class Person_Validation
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public int Age { get; set; }
[Required]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用示例来自:http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
我认为最好的选择是不要搞乱EF生成的类.而是定义自己的部分类:
[MetadataType(typeof(Person_Validation))]
public partial class Person
{
//rest of class may be empty
}
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以在与Person_Validation类相同的文件中执行此操作.
它不是自动的,但它是安全的(您的更改不会丢失).这种方法适用于任何代码生成框架(使用部分类),而不仅仅是EF.