1

我想在除属性名称顶部之外的其他位置定义数据注释。我知道我可以这样编写代码:

public class student
{
   [Required]
   public string Name {get; set;}
}

但我正在使用 Linq to Sql 数据类,我不想更改这些类。我知道我可以只使用数据注释定义一个新类,但我想知道还有其他方法吗?抱歉英语不好。

4

2 回答 2

0

你可以让你的DataAnnotations属性装饰类的成员。或者他们可以在元数据伙伴类中。是一篇解释这种方法的文章。

但是由于您的实际课程需要用MetadataType我不知道这是否可以使用 Linq-To-Sql 来完成。

于 2013-07-28T10:37:49.220 回答
0

如果您想在不同的文件中添加数据注释:

申请开始:

protected void Application_Start()
        {
            //...
            MetadataExtensions.Register();
        }

登记:

public static class MetadataExtensions
{
    private static void Register(Type type, Type associatedMetadataType)
    {
        var provider = new AssociatedMetadataTypeTypeDescriptionProvider(type, associatedMetadataType);
        TypeDescriptor.AddProviderTransparent(provider, type);
    }

    public static void Register()
    {
        Register(typeof(Student), typeof(StudentMetadata));
    }
}

在此文件中指定您的注释(无需重新声明所有属性,只需重新声明带有注释的属性):

public class StudentMetadata
{
    [Required]
    public string Name { get; set; }
}
于 2013-07-28T10:40:56.193 回答