【发布时间】:2021-01-22 06:03:35
【问题描述】:
我正在尝试创建一个项目,它将在我的所有项目中扮演存储库角色。
理念:
这个想法的灵感来自 通用存储库模式,所以我正在尝试创建一个 generic class 将作为存储库。
此类将在实例化时收到dbcontext。
这个类将实现一个Interface。
界面:
interface IRepo<Tcontext> where Tcontext : DbContext
{
void GetAll<Table>();
}
回购类:
public class Repo<Tcontext>:IRepo<Tcontext> where Tcontext: DbContext
{
private Tcontext _Context { get; set; } = null;
private DbSet _Table { get; set; } = null;
public Repo()
{
_Context = new Tcontext();
}
public void GetAll<Table>()
{
_Table = new DbSet<Table>();
return _Context.Set<Table>().ToList();
}
}
所以,想法,假设我们有这个 dbcontext 类:DBEntities,如果我想从Client 表中选择所有记录,然后在另一行中我想从Order 表中选择所有记录
我会使用:
Repo<DBEntities> repo = new Repo<DBEntities>();
var clients repo.GetAll<Client>();
var orders repo.GetAll<Order>();
有什么问题:
Repo 类中的问题。
问题是四个错误我不知道如何解决它们。
那么请帮助解决这个问题?并在此先感谢您。
【问题讨论】:
标签: c# generics repository-pattern generic-programming