我在寻找一些建议理由如下:

我需要创建一个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项目的方案覆盖。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top