Преимущества репозитория - PullRequest
0 голосов
/ 28 июля 2011

Люди,

Я размышляю над тем, как убедить своего босса в преимуществах шаблона хранилища; особенно после встречи со следующей проблемой.

Вот метод в хранилище 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. И это большое «НЕТ, НЕТ».

Итак, как я могу убедить кого-то, что модель хранилища, которая демонстрирует вышеуказанную природу, стоит того, чтобы ее использовать. Есть ли обходной путь, чтобы избежать вышеуказанной проблемы?

спасибо Дорман

1 Ответ

0 голосов
/ 29 ноября 2011

Шаблон репозитория не предполагает никакого типа контейнера IOC. Вы можете получить шаблон с любым механизмом сохранения от плоских файлов в списках памяти до сохраненных процедур. Ваша проблема связана с вашим контейнером IOC или LINQ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...