Сначала я спроектировал свою базу данных, а затем с помощью дизайнера EF создал модель для использования в моем приложении MVC. Большинство столбцов nvarchar в моей базе данных имеют пустые строки по умолчанию, и они не допускают нулевые значения.
Как настроить поля, чтобы разрешить пустые строки в моем приложении MVC 3?
<div class="editor-label">
@Html.LabelFor(model => model.Phone2)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Phone2)
@Html.ValidationMessageFor(model => model.Phone2)
</div>
Свойство «Phone2» может быть пустым, но поведение EF / MVC по умолчанию, по-видимому, делает поле обязательным.
Я создал частичный класс для расширения классов, генерируемых EF, и у меня также есть класс MetadataType для добавления дополнительных атрибутов DataAnnotation в модель.
[MetadataType(typeof(MyClassMetadata))]
public partial class MyClass
{
// Adding more properties and methods here, mostly to support use of enums in EF.
}
public class MyClassMetadata
{
// Empty strings are ok here!
public string Phone2 { get; set; }
[AllowHtml]
[UIHint("Html")]
public string Text { get; set; }
}
Как сделать поле «не обязательным»? Я знаю, что мог бы просто пропустить проверку в моем представлении (использовать простые элементы управления), но кажется, что было бы более «правильным» добавить желаемое поведение в мою модель.