以下についてアドバイスを求めています。
データベースと Web サービスの間で交換可能な DAL を作成する必要があります。私はC#とWPFで開発しています。
誰かが IUnitOfWork の適切な実装を見て、何らかの DI を使用して別の DAL を切り替えたり切り替えたりできるようにしていますか?
編集
それで、いくつかの読書をした後。リポジトリ パターンを使用することにしました。Rep パターンは 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 サービス リポジトリは扱いにくいものになります。では、ある種のトランザクションをどのように作成し、どのようにキューに入れるかなど.
最後にもう 1 つ、WPF 環境では複数のスレッドがデータベースに保存する可能性があるため、スレッドごとに独自の UnitOfWork を作成する必要がありますか? スレッドが別のスレッドの途中でコミットする可能性があるなど怖い.