У меня есть трехуровневое приложение:
1-й уровень: БД SQL.
2-й слой: App Sever (dotnet)
3-й уровень: умный клиент wpf.
Я использую NHibarnate (свободно) в качестве источника данных для уровня сервера приложений.
(Сервер приложений - 2-й уровень общается с БД с использованием NH)
Прикладной уровень общается с клиентом, используя WCF.
Получу ли я какую-либо выгоду от использования NH - поскольку WCF не поддерживает отложенную загрузку NH (по крайней мере, это не выглядит так) и - если я использую статический объект сеанса - мне нужно сделать один экземпляр сервера единым параллелизм - в противном случае в NH все становится грязно, когда одновременно поступает более одного звонка. Если я открываю объект сеанса (NH) для каждого вызова и закрываю его в конце вызова - я теряю кэш 1-го уровня NHibarante ...
Итак - Вопрос в том, правильно ли я реализую NH? или это не должно быть эффективным в моем виде проекта?