在Building a Desktop To-Do Application with NHibernate中,Oren Eini(a.k.a. Ayende Rahien)分享了一般建议的NHibernate做法是在桌面应用程序中使用每个表单一个会话。在给出的示例中,这很容易实现,因为表单呈现者知道持久层,因此可以创建和处理会话以匹配其生命周期。
在更复杂的应用程序中,服务/业务逻辑层(BLL)通常位于UI代码和持久层之间。 UI层对持久性(或会话)一无所知。在这种情况下,一个(或一个?)如何为每个表单维护一个会话?
谢谢你,
本
答案 0 :(得分:0)
服务层仍会直接或通过使用当前会话上下文来注入会话。
答案 1 :(得分:0)
您可能会考虑使用在Web应用程序中流行的MVC架构,其中控制器直接处理域模型和NHibernate会话,而不是将业务逻辑委托给业务逻辑层。控制器可以保持自己喜欢的会话。
答案 2 :(得分:0)
这取决于。在使用面向服务的体系结构的复杂应用程序中,Nhibernate会话通常与服务的会话模型相关联。
您应该决定服务层是否需要与桌面客户端进行会话,并根据服务需求在nhibernate中实现会话。