2012-03-09 66 views
0

我需要一些建议:我想不脱钩的演示NHibernate的依赖和业务逻辑层,以只有数据访问逻辑层参考NHibernate的DLL文件。C#NHibernate的mulitier架构

我只看到使用SessionHelper/SessionManager对象解决方案,并在顶部层中的所有正在创建使用。我认为一个更好的解决方案必须存在。

我应该遵循什么设计模式? 我是否可以在存储库模式中封装会话(管理器,帮助器等),并轻松更改ORM而不强制在业务逻辑层进行更改?

一个代码示例,将不胜感激。提前致谢。

+1

“轻松更改ORM?”你只能使用你可能想要使用的所有ORMS之间的最小公分母。你将会遇到性能问题,因为你不能使用很多功能来增强它,并且你会有抽象的漏洞。 – Firo 2012-03-09 14:31:20

+1

这个问题出现了很多,一般的答案是:不要这样做。很少有能够更换ORM的情况值得所需的重要折衷。如果没有完全中断它,很难“隐藏”ORM。 – 2012-03-09 14:45:14

+0

Hi @MichaelMaddox:理论上我不想更换ORM,因为客户不支付这种投资。我的目标是能够实现基类/泛型类(适用于我的所有项目),并允许我隐藏我不想看到的东西(即依赖于ORM)。我想封装nhibernate会话,EF objectcontext等。你将如何实现这样一个类? – Joao 2012-03-09 16:31:55

回答