簡體   English   中英

使用存儲庫以工作模式為單位的.Net依賴項注入

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM