我目前正在學習NHibernate,我想要數據綁定到Web控件(即GridView)。GridView不會導致NHibernate代理加載關係
在我目前的例子裏,我用流利的NHibernate的映射兩張表對他們的業務對象(項目和ProjectStatus)。我也有一個「項目有ProjectStatus」(多對一)關係。
項目類的結構:
Project.ID
Project.Name
Project.ProjectStatus.Name
Project.ProjectStatus.Description
當我結合項目的對象的列表(懶惰=「代理」)以一個GridView時,GridView不會觸發引用的表的負荷。因此,字段名稱和說明的ProjectStatus被GridView控件忽略。
有沒有一種方法與數據綁定的GridView結合使用真正的延遲加載?
在此先感謝。
如果你不想公開的OnRowDataBound事件,你可以爲子對象屬性的包裝屬性,如:public string StatusName {get {return ProjectStatus.Name; }} –
感謝Jamie Ide,是的你是對的,手動訪問孩子並將它們添加到RowDataBound處理程序中的行解決了我的問題。你知道ADO.NET實體對象/代理的行爲是否一樣?或者數據綁定更容易? – motto
@Motto - 不幸的是,這是數據綁定的一個限制,所以對象來自何處並不重要。我想你可以在沒有RowDataBound的情況下通過將一個import語句放入你的頁面並使用eval來解決它。 –