Люди,
Я размышляю над тем, как убедить своего босса в преимуществах шаблона хранилища; особенно после встречи со следующей проблемой.
Вот метод в хранилище Icecream
public IEnumerable<Icecream> FindWhere(Func<Icecream, bool> predicate)
{
return (from item in nhibernateSession.Linq<Icecream>() select item).AsQueryable<Icecream>()
.Where(predicate)
.OrderByDescending(c => c.Id).ToList();
}
Вот вызов вышеупомянутой функции хранилища
Icecream ce = qRepository.FindWhere(
(q) =>
{
return q.Id == 10;
}
).FirstOrDefault<Icecream>();
Дилемма заключается в том, что все мороженое из базы данных загружаются в память до применения предиката. По крайней мере, это то, что я понял из сгенерированного SQL. И это большое «НЕТ, НЕТ».
Итак, как я могу убедить кого-то, что модель хранилища, которая демонстрирует вышеуказанную природу, стоит того, чтобы ее использовать. Есть ли обходной путь, чтобы избежать вышеуказанной проблемы?
спасибо
Дорман