小编doe*_*doe的帖子

NHibernate和Repository模式

使用Nhibernate + Repository模式的建议方法是什么?

我有很多不同的文章和意见,我不知道该走哪条路.以这篇冗长的文章为例.它给出了Query对象的示例,但每个具体的存储库都ISession在其构造函数中接受.在BL(业务层)中,我应该关心NH会话?

  1. 创建一堆存储库,每个存储库都有一堆特定的方法?
    显然,这是太多的工作,因为BL现在"被允许"意识到NHibernate(存储库是新的Singleton)?

  2. 创建一个通用存储库,但IQueriable<T>在BL中公开和使用LINQ
    现在有一个LINQ-to-NHibernate将无法处理的查询(或者我需要在一百个查询中手动调整一次SQL).使用自定义repo方法很容易,但依赖于LINQ的代码几乎不可能.仅仅因为LINQ在某些情况下被破坏而使用两者都是无稽之谈.

  3. 查询对象?
    QueryOver也是特定于NH的,这意味着BL再次意识到DAL的实现.

  4. 另一种方法?

显然,我需要能够在某处管理事务,可能使用工作单元模式(尽管周围也有许多不同的实现).

.net linq nhibernate repository

22
推荐指数
1
解决办法
4789
查看次数

标签 统计

.net ×1

linq ×1

nhibernate ×1

repository ×1