为什么 nHibernate 示例代码的许多实例包含 Castle dll?
我在项目中看到诸如 Castle.DynamicProxy.dll 或 Castle.Core.dll 或 Castle.Model.dll 之类的文件以及各种其他类似的文件,这些文件应该是简单的,菜鸟对 nHibernate 的介绍。 Castle 这个东西和 nHibernate 有什么关系呢?这是教程作者不明智地把水搅浑了,还是 nHibernate 真的需要这种额外的跳圈才能让基础运行起来?
I see files like Castle.DynamicProxy.dll or Castle.Core.dll or Castle.Model.dll and various others similar in projects that are supposed to be simple, noob's introduction to nHibernate. What does this Castle stuff have to do with nHibernate? Is this unadvised muddying up the waters by the tutorial authors or does nHibernate really require this sort of extra hoops jumping just to get the basics running?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
NHibernate 使用代理对象来实现延迟加载,并使用 Castle DynamicProxy 模块。这就是您的实体属性需要虚拟的原因。因为 NHibernate 创建代理类来拦截对属性的调用。
NHibernate uses proxy objects to achieve lazy loading and uses the Castle DynamicProxy module. This is the reason your entity properties need to be virtual. Because NHibernate creates proxy classes that intercept calls to your properties.