我正在尝试创建一个通用存储库,它接受 2 种通用类型,例如
public class EfRepository<T, TS> : IAsyncRepository<T,TS> where T : BaseEntity
where TS : DbContext
{
..........
}
Run Code Online (Sandbox Code Playgroud)
在我的 startup.cs 我有通常的映射:
services.AddScoped<DbContext, ConfigDbContext>();
我现在如何向 DbContext 添加另一个映射?我尝试在 DbContext 和我创建的另一个上下文之间添加另一个映射,但它只使用第一个映射。
我有多个需要使用的数据库,理想情况下希望每个数据库都有一个 DbContext,但我看不到具有多个 DI 映射的方法。
在我的 EfRepository 类中,当我向代码中添加额外的 DbContext 并使用它时,以下代码异常:
protected readonly DbContext _dbContext;
public EfRepository(DbContext dbContext)
{
this._dbContext = (TS)dbContext;
}
Run Code Online (Sandbox Code Playgroud)
例外是无法从 Type1 转换为 Type2,我知道这是因为 DbContext 绑定到我的 startup.cs 中的 Type1。
我如何(如果可能)以通用方式使用多个 DbContext?