我有一个通用的存储库类。
public class Repository<TEntity> where TEntity : class
{
public virtual TEntity Create()
{
// Create implementation.
}
public virtual bool Add(TEntity entity)
{
// Add implementation.
}
public virtual bool Delete(TEntity entity)
{
// Delete implementation.
}
public virtual int SaveChanges()
{
// Save changes implementation.
}
}
我有几种与行为不完全匹配的类型,主要是针对Create
方法,所以我想做一个具体的实现。
就像是:
public class SpecificEntityRepository : Repository<SpecificEntity>
{
public override SpecificEntity Create()
{
// Other create implementation.
}
}
有没有一种方法可以让一个人Repository<SpecificEntity>
用来返回 的方法的值SpecificEntityRepository
,例如在参数类型等于时在SpecificEntityRepository
构造函数中返回?Repository<>
SpecificEntity
我正在寻找一种通用的方法来做到这一点。在我的项目的最终版本中可能有多达 200 个特定的存储库,其中 95% 的功能是通用的。