русский
Germany.ruForen → Архив Досок→ Programmierung

EF6 + ...

08.12.18 11:26
Re: EF6 + ...
 
alex445 гость
in Antwort alex445 08.12.18 11:08

А почему претензии именно к EF6? Думаете, Hibernate в этом сильно лучше поможет?


Модели сущностей для вашего слоя абстракции вообще к EF можно не привязывать (особенно, если вы по этим моделям потом не собираетесь генерить новую БД - EF Code First (EFCF)), если речь идёт о данных. Но в функциональной части вашего репозитория вы будете сохранять/запрашивать/изменять/удалять модели вашего слоя через обращение к вашей старой БД (напрямую или через тот же слой ORM, сгенеренный EF). Но если в будущем всё же планируете новую БД, основанную на ваших сущностях, то лучше в этом слое абстракции всё же применить подход EFCF.


В последнем случае я бы сделал так (но у меня мало опыта, поэтому не гарантирую удобства и прочего - проверяйте сами). Сгенерил бы автоматически ORM для старой БД. Написал бы модель (соответствующую вашей новой бизнес-логике) для новой БД с помощью EFCF. Создал бы отдельный класс-репозиторий (или адпатер, или конвертер - неважно, как назвать), который бы содержал только функциональную часть - т. е. только методы по удалению, добавлению, чтению, изменению сущностей. Сами эти методы работали бы с двумя ORM - сгенеренной для старой БД и написанной вами EFCF для новой. Как только старая БД вам не нужна (все сущности перевели в новую или просто выкинули её), то и сам репозиторий больше не понадобится, а новая модель (EFCF) у вас остаётся.


Могу ещё скинуть банальных ссылок для изучения EF.

https://docs.microsoft.com/en-us/ef/ef6/

http://www.entityframeworktutorial.net/


В некоторых местах второй источник более подробно объясняет, чем даже сама Майкрософт в своём МСДНе. У EFCF есть преимущества и недостатки. Преимущества вижу в том, что легко создать тестовую БД по скрипту. Если вы раньше не создавали БД с помощью SQL, а только в визуальном редакторе таблиц, то оцените это, т. е. переделать с нуля БД в редакторе таблиц - это огромная работа. По скриптам же генерится всё куда быстрее. EFCF - это скрипты на C#, который более знаком программисту на C#, чем SQL, но и там куча своих нюансов. Есть вещи, что быстрее и проще сделать в визуальном редакторе. Вобщем, шишки набить придётся.

 

Sprung zu