Запрос к базе данных с включенными несохраненными изменениями - PullRequest
0 голосов
/ 30 апреля 2018

Мне нужен способ запрашивать как сущности в БД, так и несохраненные изменения одновременно. Этот код выполняет свою работу, но он по крайней мере в десять раз медленнее, чем просто запрос к БД. Любые предложения, как мне поступить об этом?

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, вызывая Where (фильтр) для него, если аргумент не равен нулю.

...