与NHibernate和/或Web服务咨询上的UnitOfWork
-
11-09-2019 - |
题
我在寻找一些建议理由如下:
我需要创建一个DAL是数据库和web服务之间互换。 我在C#和WPF开发。
有没有人看到一个IUnitOfWork的任何好的实现,并允许不同的DAL为或缩小使用某种DI的开关?
修改强>
所以,做一些阅读后。我已经决定要使用存储库模式。代表号模式需要在IUnitOfWork。上面写明左右相反的方式。另外这里是什么,我在进出交换机的意思是一个例子。
NHibernateProductRepository : IRepository<Product>
{
private IUnitOfWork _unitOfWork = null;
public NHibernateProductRepository(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
WebServiceProductRepository : IRepository<Product>
{
private IUnitOfWork _unitOfWork = null;
public WebServiceProductRepository (IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
....
public static class Bootstrapper
{
public static void Load()
{
// Some sort of IOC.. Which will also be used for DI.
}
}
所以我想我需要用IUnitOfWork东西帮助。 Web服务存储库都将是棘手的。那么,如何建立某种形式的交易,以及如何排队等等等等。
最后一两件事,在WPF环境中多线程可以节约东西的数据库,因此为每个线程应该来创建它自己的UnitOfWork?我害怕一个线程可以通过其他等提交了一半。
解决方案
您应该检查 SharpArchitecture 如果你与NHibernate去。于contrib项目的方案覆盖。
不隶属于 StackOverflow