包含未保存更改的数据库查询

tor*_*rhu 5 c# entity-framework-core .net-core

我想要一种同时查询数据库中的实体和未保存的更改的方法。这段代码完成了这项工作,但它比仅仅查询数据库至少慢十倍。有什么建议我该怎么做吗?

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

GetAll只是返回 DbSet,如果参数不为空,则对其调用Where(filter)。