为什么nHibernate示例代码的许多实例都包含Castle dll?

End*_*ies 3 nhibernate castle

我看到像Castle.DynamicProxy.dll或Castle.Core.dll或Castle.Model.dll这样的文件和其他各种类似的项目应该是简单的,noob对nHibernate的介绍.这个城堡的东西与nHibernate有什么关系?这个教程作者是否对这个水域没有任何影响,或者nHibernate是否真的需要这种额外的箍跳才能使基础运行起来?

Vad*_*dim 7

NHibernate使用代理对象来实现延迟加载并使用Castle DynamicProxy模块.这就是您的实体属性需要虚拟的原因.因为NHibernate创建了拦截对您的属性的调用的代理类.

  • 从版本2.1开始,NHibernate能够使用除Castle之外的动态代理提供程序.见http://nhforge.org/blogs/nhibernate/archive/2008/11/09/nh2-1-0-bytecode-providers.aspx (2认同)