Я придерживаюсь довольно стандартного шаблона репозитория L2S, используя следующий в качестве одного из методов
public IEnumerable<T> GetAllByFilter(Func<T, bool> expression)
{
return _dataContext.GetTable<T>().Where(expression);
}
Я немного расстроен, когда вижу, что вызов GetTable
буквально получает таблицу, а выражение Where
предположительно оценивается в памяти впоследствии.
Так просто позвонить, как
var order = GetAllByFilter(o => o.OrderNumber == 1);
, который должен когда-либо возвращать только одну запись, извлекает всю базу данных записей 50000.
Линк обычно так плох? Или я что-то упустил?