с использованием Linq-to-SQL Я хотел бы предварительно извлечь некоторые данные.
1) общее решение состоит в том, чтобы иметь дело с DataLoadOptions , но в моей архитектуре это не будет работать, потому что:
- опции должны быть установлены до первого запроса
- Я использую IOC, поэтому я не создаю экземпляр DataContext напрямую (я не могу выполнить код при создании экземпляра)
- мой DataContext является постоянным в течение веб-запроса
2) Я видел еще одну возможность, основанную на загрузке данных и их дочерних элементов в методе, а затем возвращении только данных (таким образом, дочерний элемент уже загружен) см. пример здесь
Тем не менее, в моей архитектуре это не может не работать:
- Мои запросы каскадно выходят из моего репозитория и могут использоваться многими службами, которые будут добавлять пункты
- Я работаю с интерфейсами, конкретные экземпляры объектов linq-to-sql не покидают репозитории (да, вы можете работать с интерфейсами И добавлять предложения)
- Мои репозитории являются общими
Да, эта архитектура довольно сложна, но она очень крутая, так как я могу играть с кодом, похожим на lego;)
Мой вопрос: каковы другие возможности для предварительной выборки данных?