Я использую EF Power Tools для обратного проектирования существующей базы данных. Это хорошо. В рамках маршрута EDMX Database-1st я бы создал частичные классы для любых переопределений, таких как аннотации данных, например здесь LedgerPeriod - исходный объект EntityObject:
[MetadataType(typeof(LedgerPeriodMetaData))]
public partial class LedgerPeriod
{
public class LedgerPeriodMetaData
{
[Required(ErrorMessage = "Period Start Date Required")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
[DataType(DataType.Date)]
public object PeriodDateFrom { get; set; }
[Required(ErrorMessage = "Period End Date Required")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
[DataType(DataType.Date)]
public object PeriodDateTo { get; set; }
}
}
Это хорошо. Теперь я использую тот же подход для Code First Reverse Engineer или существуют ли какие-либо пользовательские настройки, при которых, если вам придется запускать электрические инструменты несколько раз, потому что, скажем, я добавил новую таблицу в базу данных, это не будет не перезаписывать какие-либо изменения в существующих моделях, созданных ранее.
В конечном итоге это означало бы, что я могу вносить изменения в сами классы модели вместо того, чтобы создавать частичные классы.
Ссылку на EF Powertools можно найти здесь:
http://blogs.msdn.com/b/adonet/archive/2012/04/09/ef-power-tools-beta-2-available.aspx
1 ответ
Code First официально не поддерживает сценарий обратного проектирования, поэтому он называется Code First. Электроинструменты хороши, но, как вы говорите, они все затирают. EF Code First разработан таким образом, что вы вносите изменения в сами модели, а не в партиалы и метаданные (хотя вы все равно можете использовать их, если хотите).
Что вы можете сделать, так это использовать функцию Customize Reverse Engineer Templates в EF Power Tools, а затем изменить шаблоны T4, чтобы добавить частичные объявления к сгенерированным классам, или вы можете добавить код для проверки конкретных сущностей и изменить их по своему усмотрению.
Однако на самом деле в этом нет необходимости. Передача ваших сущностей в ваши представления считается плохим дизайном, и это будет единственной причиной для добавления этих атрибутов в модели. Вдобавок к этому вы заставляете свои представления иметь те же требования, что и ваша модель данных, что также является плохим выбором.
Вместо этого вы должны использовать выделенные модели представления со своими представлениями и размещать атрибуты данных в своих моделях представления.
Похожие вопросы
Связанные вопросы
Новые вопросы
asp.net-mvc
ASP.NET MVC Framework - это платформа и инструмент веб-приложений с открытым исходным кодом, которые реализуют версию шаблона модель-представление-контроллер (MVC), адаптированную к веб-приложениям и построенную на основе технологии ASP.NET.