2011-02-28 39 views
3

我看到諸如Castle.DynamicProxy.dll或Castle.Core.dll或Castle.Model.dll和其他各種類似於應該是簡單的noob對nHibernate的介紹的項目。這個城堡的東西與nHibernate有什麼關係?這是不是受到教程作者的淹沒水域或nHibernate真的需要這種額外的籃球跳躍才能讓基礎知識運行?爲什麼許多nHibernate示例代碼實例包含Castle dll?

回答

7

NHibernate使用代理對象實現延遲加載並使用Castle DynamicProxy模塊。這是您的實體屬性需要虛擬的原因。因爲NHibernate會創建代理類來攔截對屬性的調用。

+2

從版本2.1開始,NHibernate能夠使用Castle以外的動態代理提供程序。見http://nhforge.org/blogs/nhibernate/archive/2008/11/09/nh2-1-0-bytecode-providers.aspx – 2011-02-28 13:37:21