Должны ли мы все еще использовать NHibernate для нового. NET Core проекта или перейти на Entity Framework? - PullRequest
0 голосов
/ 04 марта 2020

Я работаю в магазине, где у нас есть крупный проект. NET Framework, который работает с первых дней. NET Framework (2005 или около того). Он использует NHibernate для доступа к базе данных.

Недавно мы начали переключаться на. NET Core, что означает, что в. NET Core будут выполняться новые разработки. Некоторые из проектов C# совместно используются. NET Framework и. NET Базовым решением.

В настоящее время мы активно обсуждаем вопрос, стоит ли нам оставаться с NHibernate или переключиться на Entity Framework для. NET Основные разработки. Оставаться с NH означает, что мы можем повторно использовать весь код, связанный с БД, что, конечно, является большим преимуществом. Что касается сохранения знаний, то ситуация не так уж и ясна. Есть 2 или 3 разработчика, которые знают много о NH, но большинство не знают, и на самом деле некоторые из них знают EF лучше, чем NH из-за своей предыдущей работы.

Я очень неуверен в будущем NH Вполне возможно, что через 5 лет все подумают, «как они могли бы начать новый проект и остаться с NH».

Что вы, люди, думаете об этом?

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Это довольно субъективная вещь, но IMO, ответ явно для NHibernate.

В последние месяцы, годы он претерпел значительную работу, со многими выпусками и был портирован. NET Ядро и получил много функций. Он поддерживает гораздо больше баз данных, чем EF Core, и множество сценариев базы данных ios, которых нет в EF Core (таблица на класс, таблица на конкретный класс). Кроме того, он обладает множеством более продвинутых функций, чем EF Core (стратегии генерации идентификаторов, HQL, Criteria API, строго типизированные удаления и многие другие).

0 голосов
/ 05 марта 2020

Я пришел из NH фона. Выбирая между NH и EF6, я бы выбрал EF6. Между NH и EF Core я бы придерживался NH. При работе над новым проектом я все еще выбираю EF6.

EF6 является зрелым, предлагает отличную производительность и отличную поддержку Linq. Это последнее, что отвлекло меня от NH. Поддержка Linq была запоздалой мыслью, они больше заботились о том, чтобы оставаться в согласии с Hibernate, чем использовать то, куда направлялся Net. Честно говоря, я не знаю, изменилось ли это отношение с тех пор. Я опустил пальцы ног с EF5, и с головой погрузился в EF6 и не оглядывался назад.

EF Core - откровенно беспорядок. Простой просмотр вопросов здесь, в SO, ясно продемонстрирует этот момент. Он по-прежнему не предлагает те же возможности EF6, а сосредоточен на новых функциях, которые обычно не нужны людям. Произошло несколько серьезных изменений, и вы постоянно работаете с функциями, которые отсутствуют или явно отличаются от того, что было доступно в EF6 или даже EF Core 2.2.

Если только EF Core не предлагает что-то значительное что NH испытывает недостаток (сомнительно), тогда "Если это не сломано ...."

...