我想要一种方法来同时查询数据库中的两个实体和未保存的更改。这段代码完成了这项工作,但它至少比查询数据库慢十倍。有什么建议我会怎么做?
public ICollection<T> QueryWithLocal(
Expression<Func<T, bool>> filter,
Expression<Func<IQueryable<T>, IQueryable<T>>> extra)
{
if (extra != null)
{
var compiled = extra.Compile();
compiled(GetAll(filter)).Load();
var local = filter != null ? _dbset.Local.AsQueryable().Where(filter) : _dbset.Local.AsQueryable();
return compiled(local).ToList();
}
else
{
GetAll(filter).Load();
return filter != null ? _dbset.Local.AsQueryable().Where(filter).ToList() : _dbset.Local.ToList();
}
}
GetAll
只返回DbSet,如果参数不为null,则调用其中的Where(filter)。