我有一個標準的自引用表Categories
。在我的實體模型中,我建立了關聯Children
和Parent
。是否有可能加載整個Category
對象沒有延遲加載?急於加載自引用表
如果我使用下面的代碼,它只加載到第二級。
db.Categories.MergeOption = System.Data.Objects.MergeOption.NoTracking;
var query = from c in db.Categories.Include("Children")
where c.IsVisible == true
orderby c.SortOrder, c.Id
select c;
如果我已經加載了所有類別對象,是否可以加載引用?
一種方法加載它是多次
db.Categories.Include("Children.Children.Children.Children.Children")
添加Children
屬性,但它產生的很長瘋了的T-SQL代碼,也不會做我想做的。
但是,如果我運行查詢「選擇*從類別」我已經加載整個表,並且我已經加載所有父和子類別,因爲它們都在一個表中。那麼在這種情況下,將這些加載的記錄分配給引用的屬性並不是很複雜? – 2009-09-14 17:30:57
如果您實際上迭代了整個表格,則所有對象*將*放在內存中,並且*會*已經被修正,無論是否包含。但是直到你達到表中的最後一個記錄爲止,這是不會發生的。包含相關對象將保留在您迭代的* first *記錄中。 – 2009-09-14 18:13:55
「哪個SQL語句在自引用層次結構中包含無限深度?」 - > T-SQL中的公用表表達式 – 2011-03-04 09:06:05