[英].Net Dependency injection in unit of work pattern using repositories
對於依賴注入的概念,我是一個相對的菜鳥,在開始新項目之前,我一直在嘗試收集最佳實踐。
在使用存儲庫的工作單元模式中查看依賴項注入的最佳答案,我理解了這種方法,但是示例代碼似乎缺少了一些東西,我很困惑……
接口IRepository
的定義如下所示:
public interface IRepository
{
void Submit();
}
但是,當將該接口用作GenericRepository
類的定義的一部分時,將不會實現Submit方法:
public abstract class GenericRepository<T> : IRepository<T> where T : class
{
public GenericRepository(IUnitOfWork unitOfWork)
{
unitOfWork.Register(this);
}
}
然后,定義一個特定實體的存儲庫類,該類繼承自GenericRepository:
public class DepartmentRepository : GenericRepository<Department>
{
public DepartmentRepository(IUnitOfWork unitOfWork): base(unitOfWork) { }
}
我的問題是,鑒於每個不同實體的存儲庫都可能需要引用不同的DataContext
,那么應該如何使用DI實現通用的Submit()
方法?
您鏈接到的問題是一種確保工作單元始終了解存儲庫的解決方案; 倉庫的實現本身是沒有用的! 信息庫至少應公開所有雜項操作的方法:
public interface IRepository<TEntity, in TKey> where TEntity : class
{
TEntity Read(TKey id);
TEntity Add(TEntity entity);
TEntity Update(TEntity entity);
void Delete(TKey id);
}
請參見本文章的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.