2013-03-15 74 views
0

當我試圖優化的NHibernate的查詢取:NHibernate的查詢單個對象

var profile = dc.Profiles.FirstOrDefault(p => p.IdProfile == idProfile); 

我想它加載權利的集合。我這樣做:

var profile = dc.Profiles.Fetch(x => x.Rights).FirstOrDefault(p => p.IdProfile == idProfile); 

的結果跟我想象中完全不同的 - 而不是讓單個人資料與權利我有一個配置文件與單吧!

我該如何解決?

回答

-1

您可以使用這樣

var profile = dc.Profiles.Where(p => p.IdProfile == idProfile).Select(x => x.Rights); 
+0

這是一個完全不同的查詢。您選擇權限集合,而不是選擇具有關聯權限的配置文件。 – kubal5003 2013-03-15 12:19:40

+0

特別RIGHT許多概況 > > '變種輪廓= dc.Profiles.Where(p值=> p.Right ==右)。選擇(p值=> p.ProfileId);'
> U可以甚至進行分組 'var profile =從dc.Profiles中的配置文件其中profile.Right ==右側的組配置文件通過profile.Rights進入grp select grp.FirstOrDefault(); – Vitthal 2013-03-15 12:33:45

+0

謝謝你的努力,但你再一次完全錯過了這一點。問題不在於編寫另一個查詢,而是爲了使其正確工作。這可能也是一個NHibernate的bug。 – kubal5003 2013-03-15 17:02:29

相關問題