Entlib自我验证& EF Pocos

时间:2012-06-29 01:23:11

标签: entity-framework ef-code-first enterprise-library

我已经使用企业库验证模块一段时间了,取得了巨大的成功。但是,我遇到了试图将SelfValidation与Entity Framework Code First一起使用的障碍。以下是一些示例代码:

实体

namespace Data.Model
{
    using System.ComponentModel.DataAnnotations;
    using MetaData;
    using Microsoft.Practices.EnterpriseLibrary.Validation;
    using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

    [HasSelfValidation]
    [MetadataType(typeof(PersonMetaData))]
    public class Person
    {
        public int Id { get; set; }

        public string Forename { get; set; }

        public string Surname { get; set; }

        [SelfValidation]
        public void Validate(ValidationResults validationResults)
        {
            if (validationResults != null)
            {
                validationResults.AddAllResults(
                    ValidationFactory
                        .CreateValidator<PersonMetaData>()
                        .Validate(this));
            }
        }
    }
}

验证注释(不,我不想讨论最佳实践伙伴课程;)

namespace Data.MetaData
{
    using System.ComponentModel.DataAnnotations;
    using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

    public class PersonMetaData
    {
        [Required(ErrorMessage = "Forename is required.")]
        public string Forename { get; set; }

        [Required(ErrorMessage = "Surname is required.")]
        public string Surname { get; set; }
    }
}

所有简单的东西,但调用验证,SelfValidation方法验证将不会触发 - 注释被检查,但我可能希望放置在SelfVAlidation方法中的任何自定义验证将被绕过。

是什么给出的?首先在模型/数据库中完美运行。

理查德

0 个答案:

没有答案