Oma*_*mar 12 asp.net data-annotations
我正在尝试将数据注释实现到我的Linq to SQL对象.生成.dbml文件,我不知道如何在不触及生成的源代码的情况下向对象添加数据注释.
我试图将数据注释添加到对象的单独的部分类中,但它没有识别它,也没有Intelli意义.
jph*_*ard 22
正如我在这个问题的原始答案中所说,你应该使用一个界面.我发布的答案(标记为已接受)表示使用课程.这不是那么好.由于以下原因,接口是更好的选择:
对于一个名为"User"的类,为它创建一个接口(比如'IUser'),然后更新部分User类的定义,如下所示:
[MetadataType(typeof(IUser))]
public class User : IUser
Run Code Online (Sandbox Code Playgroud)
然后,在IUser界面中,将相应的Data Annotation属性添加到属性中:
[Required]
[StringLength(50, ErrorMessage = "Username cannot exceed 50 characters")]
string Username { get; set; }
Run Code Online (Sandbox Code Playgroud)
对于一个名为"User"的类,为它创建一个接口(比如'IUser'),然后更新部分User类的定义,如下所示:
[MetadataType(typeof(IUser))]
public class User : IUser
Run Code Online (Sandbox Code Playgroud)
然后,在IUser界面中,将相应的Data Annotation属性添加到属性中:
[Required]
[StringLength(50, ErrorMessage = "Username cannot exceed 50 characters")]
string Username { get; set; }
Run Code Online (Sandbox Code Playgroud)
Linq to SQL生成对象类为partial.实现数据注释的一种简单方法是创建自己的对象的部分类,将[MetadataType(typeof(YourDataAnnotationClass))]放在您创建的部分类上.
例:
// Linq to SQL Class
public partial class Article
{
public string Title { get; set; }
...... etc
}
Run Code Online (Sandbox Code Playgroud)
使用元数据为要验证的每个字段创建自己的MetaData类
public class MyMetaDataClass
{
[Required]
[Range(5,20)]
public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
为要添加元数据的Object类创建一个Partial Class,在本例中为Articles类:
[MetadataType(typeof(MyMetaDataClass))]
public partial class Article { }
Run Code Online (Sandbox Code Playgroud)
注意:您不需要在类中指定任何内容,只需要指定元数据类型.
归档时间: |
|
查看次数: |
8144 次 |
最近记录: |