DisplayName в модели, использующей Entity Framework - PullRequest
6 голосов
/ 05 мая 2011

У меня есть код, который выглядит следующим образом:

public class MyModel
{
    [Required]
    [Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))]
    public string name{ get; set; }
}

Проблема в том, что атрибут Display и Required были добавлены в сгенерированный класс модели Entity Framework.Я знаю, что могу добавить функциональность с помощью Partial, но как добавить атрибут в класс, который будет удален и обновлен с помощью ORM?

Ответы [ 2 ]

8 голосов
/ 05 мая 2011

По моему опыту, модели из базы данных редко совпадают с используемыми на веб-страницах. Вам всегда нужны какие-то изменения. Отсюда использование ViewModel с. Другим положительным моментом является то, что все веб-страницы, которые используют вашу ViewModel, не сломаются, если изменить модель объекта.

Что касается безопасности, если у вас есть public ActionResult Save(MyEntityModel model), это может привести к бреши в безопасности, поскольку пользователь может выяснить, как публиковать значения в свойствах, которые не следует изменять (например, Role, Status, * 1007). * или что угодно).

Вместо этого ознакомьтесь с картографом (например, automapper ) и поместите атрибуты в модель представления.

3 голосов
/ 05 мая 2011

Рассматривали ли вы шаблон T4 для изменения сгенерированного кода.

http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx

Я склонен использовать шаблоны T4 в сочетании с частичными классами при работе с сгенерированным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...