在我自己的持久框架中使用DataAnnotations和Validation?

时间:2011-04-08 09:00:44

标签: validation c#-4.0 repository

我正在构建一个依赖旧遗留系统的程序。 我特别是在POCO /持久性不可知模型类上编写自定义CRUD存储库。

Ex(简化):

public class Company { // No dep with the legacy objects
    public string CompanyName {get; set;}
}

public class CompanyRepository { // other project
    public Company Get(ID companyID)
    {
        var myOldSchoolCompany = oldSystem.GetCompany(companyID.Key);
        return new Company { CompanyName = myOldSchoolCompany.CompanyName; }
    }
    public Company Save(Company company)
    {
        var myOldSchoolCompany = oldSystem.GetCompany(companyID.Key);
        myOldSchoolCompany.CompanyName = company.CompanyName;
        oldSystem.Save(myOldSchoolCompany);
    }        
}

此代码按预期工作,但我想进一步,添加检查和验证。 我需要能够有必填字段,范围验证等。

我喜欢DataAnnotation机制,它允许我在模型本身上添加这些信息。 是否有可能(并且一个好主意)重用这种机制? 确切地说,是否有可以验证模型对象的OOB Validate方法?

提前谢谢, 史蒂夫

1 个答案:

答案 0 :(得分:2)

我认为使用注释进行验证是一种很好的做法。一些常见的框架,如ASP.NET MVC,Entity Framwork使用它。 您可以使用Validator类来验证带注释的对象。

我建议您构建一个小框架来集成注释框架和系统类。