繁体   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