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