Использование System.ComponentModel.DataAnnotations с Entity Framework 4.0

Я работаю с MVC3 и использую Entity Framework 4.0 Entities в качестве моих модель. Пока что все работает отлично, если использовать его в качестве модели (все грубые операции / генерации страниц работают из коробки). Однако мне интересно, как получить такие же надежные метки и информацию для проверки, как при создании модели вручную?

Вот пример того, что я имею в виду. Это класс, созданный образцом проекта MVC3:

public class LogOnModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
}

В приведенном выше примере вы можете указать, что будет отображаться в метке для поля (Отображение) и какой тип поля использовать (Пароль). Однако, когда я пытаюсь использовать структуру сущностей и помещаю ее в представление ниже, я вижу, что автоматически сгенерированные метки - это просто имена полей, а не все, что я хочу, чтобы пользователь видел / должен был прочитать:

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Person</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.FirstName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.FirstName)
            @Html.ValidationMessageFor(model => model.FirstName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.MiddleName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.MiddleName)
            @Html.ValidationMessageFor(model => model.MiddleName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.LastName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.LastName)
            @Html.ValidationMessageFor(model => model.LastName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Birthdate)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Birthdate)
            @Html.ValidationMessageFor(model => model.Birthdate)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>}

enter image description here

Мой вопрос: : Как добавить эти дополнительные украшения к объектам, созданным с помощью EF4? Есть ли что-то помимо System.ComponentModel.DataAnnotations, что мне следует использовать? Я знаю, что сущности регенерируются, и, вероятно, не рекомендуется напрямую добавлять это в код сущностей, но по какой-то причине я не могу придумать лучшего подхода, чем вручную вводить текст метки в представлении (lame, there ' нет причин для этого, это MVC!). Я хочу сохранить его, чтобы приложение было достаточно динамичным, чтобы иметь возможность правильно отображать информацию для моей модели и поддерживать подход MVC. Как это сделать?

51
задан tereško 14 March 2013 в 17:59
поделиться