這可能已經被問過,但我找不到它,所以在這裏。LinqToSql的關聯加載
我們使用Context.GetTable()對錶進行泛型讀取,然後附加表達式以在表中找到單個記錄。該表具有關聯。不幸的是,我們試圖改變一個關聯的領域,所以;
富是酒吧的父母對FooId
當我們要改變FooId,它的崩潰,因爲的EntityRef的HasAlreadyLoaded屬性設置爲true。除非我不太瞭解LinqToSql,否則我認爲這是在此記錄集上調用SingleOrDefault的行爲,它實際上正在觸發查詢並因此加載所有關聯的對象。
有沒有辦法阻止這種加載發生? (ObjectTrackingEnabled和DeferredLoading設置爲true),如果不是這個問題常見的解決方案是什麼?我們現在還不知道個人關係,我不想看看是否有可能找出關聯並根據ID加載它們。
我的首選方法本來是一個不太通用的方法,我可以完成.Foo = Context.Foo.Select(x => x.Id == FooId),但我們現在沒有那種奢侈。