gpt4 book ai didi

asp.net-mvc - 使用 MVC2 和 EF4 进行自定义验证

转载 作者:行者123 更新时间:2023-12-02 08:58:53 25 4
gpt4 key购买 nike

ScottGu 博客上的

是如何将 MVC2 自定义验证与 EF4 结合使用的示例: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

所以问题在这里:

当 VS2010 中的设计器为数据库创建对象时,根据示例,您必须向该类添加 [MetadataType(typeof(Person_validation))] 注释。

但是当我更改设计器中的任何内容时,所有这些注释都会丢失。

是否可以保留对 edmx 文件的自行更改,或者是否有更好的方法将 System.ComponentModel.DataAnnotations 应用于生成的实体?

谢谢。

最佳答案

您可以使用一种松散地称为“伙伴类”的模式来做到这一点。基本上,您要做的就是使用元数据创建一个单独的类,并创建一个将生成的实体耦合到您的伙伴类的部分类。

举个简单的例子,假设您有一个 Person 实体,并且您希望将 FirstName 属性设置为必需。这是您在生成的文件之外要做的事情:

[MedadataType(typeof(PersonMetadata))]
partial class Person { } // the other part is generated by EF4

public class PersonMetadata
{
// All attributes here will be merged into the generated class,
// thanks to the partial class above. Just apply attributes as usual.

[Required]
public string FirstName { get; set; }
}

您可以找到有关此方法的更多详细信息here 。 ScottGu 实际上也在您链接的文章中谈到了这一点。查看标题“第 5 步:持久化到数据库”;)

关于asp.net-mvc - 使用 MVC2 和 EF4 进行自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2749741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com