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