Я пытаюсь выполнить проверку подлинности структуры Entity Framework на стороне сервера. Другие проверки на стороне сервера, такие как проверка типа данных и требуемые свойства DateTime и числовые EF, работают.
Это в VS 2010,.NET 4.0, MVC2 + Cloud, ADO.Net Entity Framework.
У свойства String, с которым я столкнулся, сопоставляется с столбцом столбцов SQL 2008, Varchar (50).
Когда я пытаюсь отправить свое действие Create с пустой строкой для этого свойства, я получаю ошибку follwing.
Сведения об исключении: System.Data.ConstraintException: для этого свойства не может быть установлено значение null.
Когда я отправляю сообщение в действие с пустым пространством, я успешно получаю требуемое сообщение проверки поля.
Я попытался использовать Data Annotations и ClientSideValidation, но, похоже, проблемы с ClientSideValidation работают над частичными представлениями и диалоги jquery.
Вот оригинальный автогенерированный код из структуры сущности.
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String GradeTypeName
{
get
{
return GradeTypeName;
}
set
{
OnGradeTypeNameChanging(value);
ReportPropertyChanging("GradeTypeName");
_GradeTypeName = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("GradeTypeName");
OnGradeTypeNameChanged();
}
}
В зависимости от сигнатуры метода Action (CREATE или EDIT) исключение может возникнуть перед тем, как вступить в метод или внутри метода, когда вызывается UpdateModel(). Внутреннее исключение находится в строке ниже из файла model.designer.cs.
_GradeTypeName = StructuralObject.SetValidValue(value, false);
Я смог воспроизвести это на простом веб-приложении mvc2.