Есть ли способ отключить функции отслеживания объектов LINQ, не отключая также загруженные потомками дочерние ассоциации?
Я использую LINQ2SQL в наборе интеграционных тестов. Я использую только LINQ для проверки изменений в базе данных, поэтому я хочу, чтобы она действовала как простой слой доступа к данным, а не как полноценный ORM. Для этого я установил для свойства ObjectTrackingEnabled контекста данных значение false, чтобы предотвратить кэширование данных LINQ. Это прекрасно работает, за исключением того, что это нарушает ассоциации между сущностями.
Например, предположим, две таблицы WIDGET и CATEGORY, с отношением FK между ними. При включенном отслеживании объектов widgetInstance.CATEGORY правильно загружается с отложенной загрузкой. При отключенном отслеживании объектов ничего не загружается, и свойство CATEGORY всегда равно null.
Как запретить LINQ кэшировать данные, не предотвращая также отложенную загрузку?
ОБНОВЛЕНИЕ: Вот ссылка на страницу MSDN , на которую ссылается ответ. Также выяснилось, что я могу использовать LoadWith для быстрой загрузки дочерних данных. В моем случае я просто хочу получить данные, так что готовая загрузка в порядке.