在我的方法中:
public void DeleteSingleMrTypeByVersionIdAndId<T>(
int version_id, int child_obj_id, CIHEntities _dbContext)
where T : MrBase
我想从数据库实体中获取行。所以,我有这个:
IQueryable<T> old_items = _dbContext.???
.Where(r => r.MrVersionEntityAssoc.Id == version_id)
.Where(r => r.Id == child_obj_id)
.Select(r => r);
但是如何编写LINQ语句以便它使用T
知道从哪里获取行?
当然,仅将其称为T
不起作用。
IQueryable<T> old_items = _dbContext.T
.Where(r => r.MrVersionEntityAssoc.Id == version_id)
.Where(r => r.Id == child_obj_id)
.Select(r => r);
我们正在使用VS2012。
由于 埃里克
答案 0 :(得分:3)
您正在寻找的方法是Set()
:
IQueryable<T> old_items = _dbContext.Set<T>()
.Where(r => r.MrVersionEntityAssoc.Id == version_id)
.Where(r => r.Id == child_obj_id)
.Select(r => r);
修改:使用DbContext
时,以上内容适用。对于ObjectContext
,相应的方法为CreateObjectSet<T>()
。
IQueryable<T> old_items = _dbContext.CreateObjectSet<T>()
.Where(r => r.MrVersionEntityAssoc.Id == version_id)
.Where(r => r.Id == child_obj_id)
.Select(r => r);