我有一個對象可以有多個職位的用戶。部分延遲加載
例子:
負載上的帖子IList<User> users = User.LoadAll()
然後我想只讀了users[2].Posts[3]
的「半壁江山」(只獲取我想要的屬性,而不是從所有這些延遲加載用戶那個帖子對象),這是可能做到的嗎?
(注意,我不想使用視圖)。
編輯: 請問有人可以給我一個簡單的示例代碼嗎? 我試圖找到一個沒有成功。 謝謝
我有一個對象可以有多個職位的用戶。部分延遲加載
例子:
負載上的帖子IList<User> users = User.LoadAll()
然後我想只讀了users[2].Posts[3]
的「半壁江山」(只獲取我想要的屬性,而不是從所有這些延遲加載用戶那個帖子對象),這是可能做到的嗎?
(注意,我不想使用視圖)。
編輯: 請問有人可以給我一個簡單的示例代碼嗎? 我試圖找到一個沒有成功。 謝謝
如果我很好地理解你的問題 - 你想得到一個對象 - 在你的情況下發布 - 但只有它的一些屬性 - 例如Post.Annotation而不是Post.Content,兩者都是字符串。
這是不可能的。從數據庫檢索的每個對象都將具有所有不屬於關係或集合的屬性。
你可以做一個變通方法:通過轉動較大的性能 到一個單獨的實體,創建自定義
,然後做 多到一的映射,並利用懶 裝載
查詢是HQL還是帶投影的標準(基本上只有幾列)。但是這不會返回完整的對象。
希望我把你的問題的權利......
是的,這是可能的。當NHibernate重構數據庫中的一個對象時,它也可以重建所有對象的成員,創建一個完整的對象圖。這被稱爲級聯,它是在你的映射文件中定義的關聯的屬性,以及你不想要的東西的聲音。有關更多信息,請參閱docuemntation。
當然。
您只需在'User'類中聲明一個集合類型的額外屬性(例如'map'),將其'lazy'屬性設置爲false,將'where'屬性設置爲所需的SQL-where子句。
是的,那是我的問題,能夠從懶加載只能得到一些屬性從對象,而不是全部。我想知道NHibernate團隊是否會想出一些方法來創建「自定義延遲加載映射」,允許有多種方法來加載一個對象(全部,部分)。 – Dryadwoods 2009-10-10 11:57:12