gpt4 book ai didi

C# 添加 DBContext 作为泛型类型参数

转载 作者:行者123 更新时间:2023-12-04 04:33:15 30 4
gpt4 key购买 nike

在以下类中,如何将 DBContext 添加为泛型类型参数:

public abstract class Repository<T> : IRepository<T> where T : class
{
private MyDBContext dataContext;
private readonly IDbSet<T> dbset;

protected Repository(IDatabaseFactory databaseFactory)
{
DatabaseFactory = databaseFactory;
dbset = DataContext.Set<T>();
}

protected IDatabaseFactory DatabaseFactory
{
get;
private set;
}

protected MyDBContext DataContext
{
get { return dataContext ?? (dataContext = DatabaseFactory.Get()); }
}

public virtual void Add(T entity)
{
dbset.Add(entity);
}

public virtual void Update(T entity)
{
dbset.Attach(entity);
dataContext.Entry(entity).State = EntityState.Modified;
}

public virtual void Delete(T entity)
{
dbset.Remove(entity);
}
}

在以下方面的东西:
public abstract class Repository<C, T> : IRepository<T> where T

它会起作用吗?实现情况如何?

最佳答案

你的意思是这样?

public abstract class Repository<TContext, TEntity> : IRepository<TContext, TSet>
where TContext : DbContext
where TEntity : class
{
private TContext context;
private readonly IDbSet<TEntity>;

// ...
}

基本上只需替换对 MyDBContext 的每个引用与 TContext .

关于C# 添加 DBContext 作为泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20212293/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com