Явно запускает проверку в рамках сущности

Я использую Entity Framework 6 с шаблоном хранилища единиц работы. У меня все сущности сопоставлены с базой данных, используя свободный API. а также условия валидации, которые должны быть выполнены.

Теперь я искал способ явного вызова проверки для каждой сущности и нашел на странице пост в блоге http://msdn.microsoft.com/en-us/data/gg193959.aspx (см. "Явный запуск проверки").,

Я пытался вызвать Context.GetValidationErrors(), но он не проверяет ни одно из правил, которые определены с использованием свободно API.

Так что если у кого-то есть идеи по этому поводу, пожалуйста, не стесняйтесь ответить на это:)

Большое спасибо.

 public AM_AssetLayoutsConfiguration(string schema = "dbo")
    {
        ToTable(schema + ".AM_AssetLayouts");
        HasKey(x => x.ID);

        Property(x => x.ID).HasColumnName("ID").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
        Property(x => x.Name).HasColumnName("Name").IsRequired().HasMaxLength(50);
        Property(x => x.IncludePCFields).HasColumnName("IncludePCFields").IsRequired();
        Property(x => x.DisplayOrder).HasColumnName("DisplayOrder").IsRequired();
        Property(x => x.Active).HasColumnName("Active").IsRequired();
        Property(x => x.CreatedByID).HasColumnName("CreatedByID").IsRequired();
        Property(x => x.CreatedDate).HasColumnName("CreatedDate").IsRequired();
        Property(x => x.ModifiedByID).HasColumnName("ModifiedByID").IsOptional();
        Property(x => x.ModifiedDate).HasColumnName("ModifiedDate").IsOptional();
        Property(x => x.DeletedByID).HasColumnName("DeletedByID").IsOptional();
        Property(x => x.DeletedDate).HasColumnName("DeletedDate").IsOptional();
        Property(x => x.Deleted).HasColumnName("Deleted").IsRequired();

        InitializePartial();

Вот мое беглое отображение API.

foreach (var validationResults in dbContext.GetValidationErrors()) 
{ 
    foreach (var error in validationResults.ValidationErrors) 
    { 
        Debug.WriteLine( 
                          "Entity Property: {0}, Error {1}", 
                          error.PropertyName, 
                          error.ErrorMessage); 
    } 
}

Вот код, который вызывает метод validate согласно сообщению в блоге.

Обновление для присоединения сущности к контексту БД:

repository.EntityDbSet.Add(entity);

                DbEntityValidationResult validationResult = repository.DbContext.Entry<TEntity>(entity).GetValidationResult();

                if (validationResult.IsValid == false)
                {
                    entityValidationResults.IsValid = false;

                    foreach (DbValidationError validationError in validationResult.ValidationErrors)
                    {
                        entityValidationResults.ValidationErrors.Add(new EntityValidationError() { PropertyName = validationError.PropertyName, ErrorMessage = validationError.ErrorMessage });
                    }
                }

0 ответов

Другие вопросы по тегам