4
如果一個實體與另一個實體的關係映射爲Lazy = False,但是對於某個函數,我需要將它們全部都懶懶地提取出來,是否可以在運行時執行?NHibernate中的惰性初始化
如果一個實體與另一個實體的關係映射爲Lazy = False,但是對於某個函數,我需要將它們全部都懶懶地提取出來,是否可以在運行時執行?NHibernate中的惰性初始化
不,你不能。正如評論者所指出的那樣,你可以將它映射爲懶惰並且熱切地獲取,但不是相反。
I.e.在LINQ可以用Fetch
/FetchMany
/ThenFetch
/ThenFetchMany
預先抓取關係:
session.Query<Parent>()
.Where(x => x.Name == "Ruba")
.FetchMany(x => x.Children)
.ThenFetch(x => x.SomethingMore);
這是很容易做相反...... – 2013-02-17 11:02:38
確定「懶」是你想要什麼?就我個人而言,我不需要禁用它。在實踐中,你更可能使用'fetch =「join」'來自動檢索特定的關聯。並且*可以使用'SetFetchMode(...,FetchMode.Lazy)'(條件)或'Fetch(...)。Lazy'(QueryOver)在條件查詢和QueryOver中控制*。順便說一句,默認爲懶惰行爲+1。您可以在所有API中啓用* join-fetching,但AFAIK無法在LINQ中明確禁用它。 – 2013-02-17 11:23:11