MVC 6 .NET Nhibernate DNX core 5.0 - Недоступно
Я добавляю в проект Fluent и Fluent NHibernate, и у меня свободно на: Project.DNX Core 5.0 - Недоступно.
ISessionFactory sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2012
Я не знаю что делать.
3 ответа
Насколько я помню, NHibernate работает только сейчас только на dnx451
фреймворк. Если вы компилируете его для Windows, вы можете удалить dnxcore50
из фреймворков в project.json
Если вы не хотите редактировать project.json, вы можете поставить
#if DNX451
//whatever code is giving issue with DNX Core 5.0
#endif
Вы можете использовать это где угодно, даже при определении пространств имен, например, что я недавно использовал в своем проекте asp.net для использования Xml;
#if DNX451
using System.Xml;
#endif
Некоторое время я искал, чтобы увидеть, есть ли планы по переводу NHibernate на новое, кросс-платформенное ядро .NET, и вот как это выглядит:
- Не похоже, что кто-то сейчас работает над этим или считает это важным,
- У NHibernate есть некоторые зависимости от библиотек, которые на данный момент не совместимы с.NET Core. Даже если бы они были, потребовались бы какие-то серьезные изменения, чтобы сделать NHibernate совместимым,
- Похоже, что в проекте NHibernate не наблюдается большой активности.
Если я правильно понимаю, это означает, что если вы хотите нацеливаться на платформы Linux/Mac с помощью приложения MVC6 и хотите использовать с ним NHibernate, не задерживайте дыхание, поскольку этого не произойдет.
В этой ситуации Entity Framework Core кажется мне естественной альтернативой для использования и изучения. Это открытый исходный код, активно развивающийся, с хорошим мнением среди разработчиков и разработанный с учетом MVC 6+.