C# nHibernate会话-在Web、windows、wcf等中使用存储库模式

C# nHibernate会话-在Web、windows、wcf等中使用存储库模式,c#,nhibernate,repository,repository-pattern,C#,Nhibernate,Repository,Repository Pattern,我最近发布了一个由Bryan Watts回答的问题,关于nHibernate的通用存储库 我试图设计我的数据访问,以允许各种方面-从ASP.net、WCF和Windows窗体/Windows服务。 我有点困惑:会话管理等 我该怎么处理 我一直在检查代码,例如: 以及以下问题: 但是,如果我不只是在基于web的环境中做事,我该怎么办 我是否需要为每个客户端创建不同的存储库? 还是将ISession传入(例如)UserRepository构造函数 。。。作为旁注,我正在使用nHibernate.

我最近发布了一个由Bryan Watts回答的问题,关于nHibernate的通用存储库

我试图设计我的数据访问,以允许各种方面-从ASP.net、WCF和Windows窗体/Windows服务。 我有点困惑:会话管理等

我该怎么处理

我一直在检查代码,例如:

以及以下问题:

但是,如果我不只是在基于web的环境中做事,我该怎么办

我是否需要为每个客户端创建不同的存储库? 还是将ISession传入(例如)UserRepository构造函数


。。。作为旁注,我正在使用nHibernate.Linq,还使用fluent nHibernate来配置映射

我们在通用基类存储库中使用构造函数依赖注入。存储库构造函数需要IoC容器提供的ISession实例

IoC容器在启动时初始化,具体取决于正在使用的UI


每个UI前端绝对不需要不同的存储库。

+1用于DI使用。每个应用程序可能只需要内置一个包含此类信息的“上下文”。每种类型的应用程序的上下文都不同,例如,以web为中心的应用程序和以桌面为中心的应用程序。在上面的例子中,基础架构代码(例如存储库)只是获得了一个上下文或相应的
ISession
实例,它的制作方式对于每种类型的应用程序都是不同的。谢谢各位,你们知道我能查到的这种方法的任何例子吗?我认为Sh#rp架构可以做到,但我没有过多地研究它,一段时间内不行,所以要带上一粒盐。