смешивание NHibernate с 3 уровнями разработки - PullRequest
1 голос
/ 30 октября 2009

У меня есть трехуровневое приложение: 1-й уровень: БД SQL. 2-й слой: App Sever (dotnet) 3-й уровень: умный клиент wpf.

Я использую NHibarnate (свободно) в качестве источника данных для уровня сервера приложений. (Сервер приложений - 2-й уровень общается с БД с использованием NH)

Прикладной уровень общается с клиентом, используя WCF.

Получу ли я какую-либо выгоду от использования NH - поскольку WCF не поддерживает отложенную загрузку NH (по крайней мере, это не выглядит так) и - если я использую статический объект сеанса - мне нужно сделать один экземпляр сервера единым параллелизм - в противном случае в NH все становится грязно, когда одновременно поступает более одного звонка. Если я открываю объект сеанса (NH) для каждого вызова и закрываю его в конце вызова - я теряю кэш 1-го уровня NHibarante ...

Итак - Вопрос в том, правильно ли я реализую NH? или это не должно быть эффективным в моем виде проекта?

1 Ответ

3 голосов
/ 30 октября 2009

Вы можете проверить uNhAddIns WCF проекта . Он использует сеанс для вызова, так как это рекомендуемый способ работы с WCF.

Вы правы, говоря, что нет никакой ленивой загрузки через WCF. Вам нужно заполнить граф объекта до нужного вам уровня и затем отправить его в путь. Если ваш сервисный уровень не ориентирован на объект, поведение может быть излишним. Это сложный вызов без большого контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...