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