我是MVC的新手,我有一个项目用过的存储库和工作单元,在项目存储库中写成:
private DbContext context;
private DbSet<TEntity> dbQueryable;
public GenericEFRepository(DbContext context) : base(context.Set<TEntity>())
{
this.context = context;
this.dbQueryable = (DbSet<TEntity>)this.Queryable;
}
谁能解释它的作用并告诉我:base是什么?
答案 0 :(得分:1)
从代码中可以看出您正在使用实体框架。前两行只是EF的对象。 GenericEFRepository
是通用方法,我认为它必须是通用存储库的一部分。
使用: base(context.Set<TEntity>()
代码,您正在调用基类的构造函数。查看您已指定基类的GenericEFRepository
类的定义。
最后,方法主体返回IQueryable
,您可以在调用代码中使用它。
但是,这一切都需要改进。通用存储库被视为反模式。我建议您在实施存储库模式之前先了解它。返回IQueryable
破坏了存储库的基本用途。
请参考以下答案以获取更多信息:
https://stackoverflow.com/a/49974458/5779732
https://stackoverflow.com/a/49850950/5779732