dco*_*led 10 c# validation entity-framework asp.net-mvc-2
我已经使用VS2010的Entity Framework创建了一个包含属性,firstName,lastName和email的简单person类.如果我想附加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' */
}
}
Run Code Online (Sandbox Code Playgroud)
小智 24
伙伴类或多或少是您的代码片段旅行的方向,除了您手动编写的部分Person类将具有内部类,如:
[MetadataType(typeof(Person.Metadata))]
public partial class Person {
private sealed class MetaData {
[RegularExpression(...)]
public string Email { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
或者您可以拥有手动部分Person类和单独的Meta类,如:
[MetadataType(typeof(PersonMetaData))]
public partial class Person { }
public class PersonMetaData {
[RegularExpression(...)]
public string Email;
}
Run Code Online (Sandbox Code Playgroud)
这些是变通方法,并且具有映射的Presentation类可能更合适.
归档时间: |
|
查看次数: |
10195 次 |
最近记录: |