我使用 VS2010 的实体框架创建了一个简单的 person 类,其中包含属性、firstName、lastName 和 email。如果我想像这样附加 DataAnnotations博客文章我有一个小问题,因为我的人员类是动态生成的。我可以直接编辑动态生成的代码,但每当我必须更新模型时,所有验证代码都会被清除。
第一本能是创建一个部分类并尝试附加注释,但它抱怨我正在尝试重新定义属性。我不确定是否可以像 C++ 中的函数声明一样在 C# 中进行属性声明。如果可以的话,这可能就是答案。这是我尝试过的一个片段:
namespace PersonWeb.Models
{
public partial class Person
{
[RegularExpression(@"(\w|\.)+@(\w|\.)+", ErrorMessage = "Email is invalid")]
public string Email { get; set; }
/* ERROR: The type 'Person' already contains a definition for 'Email' */
}
}
好友类或多或少是您的代码片段运行的方向,除非您手动编码的部分 Person 类将具有一个内部类,例如:
[MetadataType(typeof(Person.Metadata))]
public partial class Person {
private sealed class MetaData {
[RegularExpression(...)]
public string Email { get; set; }
}
}
或者您可以手动设置部分 Person 类和单独的 Meta 类,例如:
[MetadataType(typeof(PersonMetaData))]
public partial class Person { }
public class PersonMetaData {
[RegularExpression(...)]
public string Email;
}
这些是解决方法,并且具有映射的Presentation 类可能更合适。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)