2011-02-28 36 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