Создал BasePOCO (который в основном аналогичен классу Entity Frameworks First EntityObject) - PullRequest
0 голосов
/ 01 мая 2018

На работе есть приложение, разработанное с использованием подхода Entity Framework Database First. Поэтому наши классы бизнес-сущностей являются производными от класса EntityObject базы данных Entity Framework Database First.

Наша команда должна была изменить приложение, перейдя от подхода Entity Framework Database First к Entity Framework Code First.

Тем не менее, мы должны изменить все классы бизнес-сущностей, которые являются производными, изменив их таким образом, чтобы они перестали наследовать от класса EntityObject.

Проблема в том, что мы используем много методов класса EntityObject и другие функции во многих классах.

Мы планировали создать класс BasePOCO, который заменит класс Entity Frameworks First EntityObject.

Мы должны были бы реализовать некоторые методы в классе BasePOCO, которые функционировали бы так же, как некоторые методы в классе EntityObject.

Например, у нас есть следующая строка в файле кода (экземпляр сущности в строке кода ниже имеет тип EntityObject)

entity.GetType (). GetProperty (firstFilter + _referenceKey);

мы можем заменить его на (мы должны реализовать методы, которые делают что-то подобное): basePOCOEntityObject.GetType (). GetProperty (firstFilter + _referenceKey);

Я предполагаю, что, вероятно, было много компаний, которые перешли от подхода Entity Framework Database First к подходу Code First Следовательно, кто-нибудь уже создал что-то наподобие BasePOCO (который в основном обладает множеством функций, аналогичных классу Entity Frameworks Database First EntityObject)?

1 Ответ

0 голосов
/ 01 мая 2018

GetType () не является методом EntityObject. Это доступно на всех объектах.

Методы EntityObject в основном заменяются методами в DbContext.ChangeTracker. Основное отличие состоит в том, что для вызова этих методов необходим объект DbContext. Это может потребовать некоторой реструктуризации кода.

...