В настоящее время у меня есть веб-приложение C # MVC 2, использующее Fluent NHibernate (+ LINQ) в шаблоне репозитория, и я использую Ninject для обработки требования конструктора контроллера MVC, чтобы оно передавалось в репозиторий.
Мой код Fluent NHibernate в настоящее время подключен к IHttpModule, поэтому сеанс можно открывать и закрывать с помощью веб-запроса.
Это прекрасно работает, пока я не попытаюсь подключить мою модель домена к консольному приложению.
Сначала я решил переместить логику своей базы данных в мою модель предметной области. Я предполагаю, что это плохое поведение, но здесь я прошу помощи в разработке кода, поэтому, пожалуйста, не стесняйтесь вносить предложения. Я хотел сделать это, потому что я хочу написать консольное приложение + веб-приложение для этой модели домена, не заботясь о том, где и как хранятся данные. Возможно, у меня должен быть отдельный проект "Инфраструктура", который использует модель предметной области для выполнения конкретной реализации?
Возвращаясь к вопросу ... Я сталкиваюсь с проблемой, когда кажется, что GetCurrentSession () Fluent NHibernate предполагает, что вы используете Интернет - происходит сбой, и я получаю трассировку к некоторому коду NH с упоминанием WebSession.
Для справки код здесь: https://github.com/cthielen/RightsManagement.
Мои извинения за то, что я не слишком конкретен; Я ищу совет по проектированию кода для лучшей обработки FNH + Linq в шаблоне репозитория, который хорошо работает как с веб-интерфейсом, так и с консольным приложением - и отдельно спрашиваю, должно ли мое подключение к базе данных (т.е. логика NH) быть в проекте домена или нет.