Мне нужен способ запрашивать как сущности в БД, так и несохраненные изменения одновременно. Этот код выполняет свою работу, но он по крайней мере в десять раз медленнее, чем просто запрос к БД. Любые предложения, как мне поступить об этом?
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 (фильтр) для него, если аргумент не равен нулю.