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+.

Другие вопросы по тегам