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

时间:2018-04-30 12:35:09

标签: c# .net-core entity-framework-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();
    }
}

GetAll只返回DbSet,如果参数不为null,则调用其中的Where(filter)。

0 个答案:

没有答案