我是LINQ to SQL的新手,因此這個問題。LINQ to SQL工作外鍵錶行
默認情況下,如果我爲一行查詢,LINQ to SQL是否獲取所有foriegn關鍵行?
如:
讓我們說我有1> N的關係將3臺
分公司-N>部門-N>員工 如果我查詢一個品牌排
Branch b = (
from b in brachDataContext.Branches
where b.id = id
select b).ToList();
這是否會提取與分支行相關的所有部門以及與這些部門相關的員工?
如果是這樣,那將是一個巨大的對象。每個分支可能有10個部門,每個部門可能有1000個員工,我們可能不需要所有的記錄。
他們沒有加載的默認行爲 – Pleun 2011-03-08 13:26:11
所以在默認行爲中,如果linq2sql只在我訪問分支對象中的部門時(例如使用foreach)在數據庫中執行查詢,我是對的嗎?同樣,如果我使用foreach語句(branch.Departments中的部門d),這些相關部門行是在單個數據庫調用中獲取的嗎? – maX 2011-03-08 13:27:39
這取決於你做什麼,但它經常發生,你會得到很多電話到數據庫。在這些情況下,我建議使用分析器來查看生成的SQL。但是,如果您知道您將需要它們,最好使用LoadOptions – Pleun 2011-03-08 13:33:46