Существует класс - это не общий класс ничего особенного:Code First Fluent API проверки не работает
public class Trader{
public Guid UserId {get;set;}
public int TraderId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string PhoneNumber { get; set; }
public string Skype { get; set; }
public string Photo { get; set; }
public string Email { get; set; }
public virtual User User { get; set; }
}
Mapping:
public TraderMap()
{
this.ToTable("Trader", "General");
this.HasKey(a => a.TraderId);
this.HasRequired(a => a.User).WithMany().HasForeignKey(a => a.UserId);
Property(a => a.UserId).HasColumnName("UserID").IsRequired();
Property(a => a.TraderId).HasColumnName("TraderID").IsRequired();
Property(a => a.FirstName).HasMaxLength(50).IsRequired();
Property(a => a.LastName).HasMaxLength(50).IsRequired();
Property(a => a.PhoneNumber).HasMaxLength(25).IsRequired();
Property(a => a.Skype).HasMaxLength(50).IsOptional();
Property(a => a.Photo).HasMaxLength(100).IsOptional();
Property(a => a.Email).HasMaxLength(100).IsRequired();
}
Когда я оставляю ПгвЬЫате или другие поля, которые имеют требуется копаться () пустым в форме (View), проверка не влезает. Он просто сталкивается с ошибкой:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
К сожалению, эта ошибка не говорит слишком много. Я копать немного глубже, но единственное, что я смог был
Invalid column name discriminator.
Я думал, что это будет какая-то забыто наследство где-то (для класса пользователя), но я не нашел ничего подозрительного.
Проблема в том, что когда я использую атрибуты в классе Trader, все работает так, как предполагалось.
public class Trader{
public Guid UserId {get;set;}
public int TraderId { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string PhoneNumber { get; set; }
public string Skype { get; set; }
public string Photo { get; set; }
[Required]
public string Email { get; set; }
public virtual User User { get; set; }
}
С атрибутами проверка работает нормально и @ Html.ValidationMessageFor начинает выводить сообщения об ошибках и не позволяет посылать NULL значения.
Есть ли у вас какие-либо предположения, в чем проблема с моим картографированием?
ОБНОВЛЕНИЕ 1 Фактически перечисленные выше признаки являются возможным решением этой проблемы.
Можете ли вы опубликовать свой класс пользователя и картографирование? –
Не понимаю. Очевидно, что проверка * IS * работает, когда вы пытаетесь вставить заготовки, ошибка «Ошибка проверки», поэтому проверка работает нормально. –
«Ошибки проверки, созданные на основе конфигураций Fluent API, не будут автоматически достигать пользовательского интерфейса, но вы можете записать его в код, а затем отреагировать на него соответствующим образом». от https://msdn.microsoft.com/en-au/data/gg193959.aspx?f=255&MSPPError=-2147217396 –