【发布时间】:2011-06-01 13:30:25
【问题描述】:
你知道这方面的一个很好的例子吗?
我想要的是以下内容:
using(IUnitOfWork uow = UnitOfWork.Start())
{
repositoryA.Add(insanceOfA);
repositoryB.Add(instanceOfB);
uow.Commit();
}
但是这种情况太理想了,因为我还想要多个 UnitOfWorks(在大多数情况下,每个演示者,这对于网络应用程序来说不是)。在那种情况下,如果我不明确地给他们喜欢,存储库将如何知道使用哪个 UnitOfWork
repository.UnitOfWork = uow;
我的目标是让每个 UnitOfWork 都包含一个 ISession,因此每个演示者一个 UOW,每个演示者一个 ISession。注意:我知道 ISession 本质上是 UOW,但我必须这样做......
大家多多指教
【问题讨论】:
-
你的 UoW 是什么意思来实现 NH 会议尚未做到的?
-
我必须使用 UoW、存储库和规范来抽象出数据层的细节;并且尽可能简化“演示”方面的使用->我希望很快我将不得不在服务器和客户端之间放置一个网络服务层,所以现在过多的耦合并不好......(YAGNI不适用 :) )
-
无论如何,将 UoW 注入存储库,似乎最合适
-
好吧,您确实无缘无故地添加了另一层抽象。 NH Session 是一个 UoW,它可以注入到您的存储库中,因此您真正所做的就是为自己做更多的工作。但看来你已经走这条路了,祝你好运。
标签: nhibernate transactions repository unit-of-work