Создание интерфейсов из базы данных entity framework первый автоматически сгенерированный код
Я использую MVC3, C# 4.0 и Entity Framework в Visual Studio 2010. Я генерирую свой edmx и разработан.CS файлы из базы данных. Затем я создаю интерфейсы из сущностей в конструкторе.cs-файл как часть моей структуры nLayer.
исходный код
public partial class DataEntrySummary : EntityObject
который затем становится
public partial class DataEntrySummary : EntityObject, Mb.Interface.IDataEntrySummary
меня беспокоит то, что при изменении базы данных (и это будет), и я регенерирую файлы edmx, я потеряю весь интерфейс определение.
есть ли лучший способ достижения того же результата без необходимости повторного создания интерфейсов.
спасибо
3 ответов
EF генерирует классы с partial
ключевое слово, чтобы вы могли добавить дополнительную функциональность к сущностям, создав другой файл и разместив там интерфейс.
public partial class DataEntrySummary : Mb.Interface.IDataEntrySummary
{
}
эти файлы не будут затронуты, когда EF обновляет модель.
вы направляетесь в правильном направлении. Но для сохранения интерфейсов после каждого обновления EDMX вам нужно будет настроить файлы T4.
вы можете взглянуть на настроенные файлы T4 изhttps://entityinterfacegenerator.codeplex.com/ Они генерируют 1 интерфейс для каждого из вашего класса, так что вы можете легко издеваться и тестировать их отдельно.
Итак, каждый раз, когда вы добавляете новую таблицу или поле, вы можете просто выполнить их шаблоны T4 вместе с те, которые предоставляются Microsoft для создания типов EF.
с уважением.
Я думаю, что создание события при обновлении модели, чтобы каждый раз, когда модель обновляет, она добавит определения интерфейса.
другой вариант-создать прокси-класс, который реализует определенный интерфейс и наследует от модели.