什么';Castle、LinFu和Spring与NHibernate的关系是什么?

什么';Castle、LinFu和Spring与NHibernate的关系是什么?,nhibernate,Nhibernate,我是NHibernate的新手,对Castle、LinFu和Spring有点困惑 我知道NHibernate有助于DDD,可以使用xml或Fluent NHibernate将实体映射到数据库。但我想知道城堡、林府和春天是如何与尼伯纳特联系在一起的 任何人都可以解释一下或者指向任何web链接吗?Castle和其他被NH用来执行依赖注入和类型截取。例如,NH能够延迟加载数据,因为它为您自己的类型创建代理并拦截对它们的调用。通过这种方式,它可以进行DB调用,并以某种自动方式填充实例 他们三人做的基本相

我是NHibernate的新手,对Castle、LinFu和Spring有点困惑

我知道NHibernate有助于DDD,可以使用
xml
或Fluent NHibernate将实体映射到数据库。但我想知道城堡、林府和春天是如何与尼伯纳特联系在一起的


任何人都可以解释一下或者指向任何web链接吗?

Castle和其他被NH用来执行依赖注入和类型截取。例如,NH能够延迟加载数据,因为它为您自己的类型创建代理并拦截对它们的调用。通过这种方式,它可以进行DB调用,并以某种自动方式填充实例


他们三人做的基本相同;由你决定你喜欢哪一个。

就我个人而言,我用过城堡和林府。如果我同时使用其他Castle组件,比如Windsor,我倾向于使用Castle。事实上,城堡也有一个NHibernate设施,这可能会有所帮助。当我没有使用任何其他城堡组件时,我使用了林府

这篇博文有点旧,但有一些有用的信息:

查看以下问题的答案:


虽然乍一看,这一切似乎都是可比的,但我个人一直避免使用林孚,因为它与S#arp Arhciture的关系非常密切。这一次咬了我一口,我一直都很害羞。Castle提供者从未误导过我。

正如其他答案所指出的,所有这些提供者都有效


值得一提的是,动态更新映射配置(FluentNHibernate中的DynamicUpdate())似乎只适用于Castle。

NH不使用Castle进行依赖项注入,它只使用Castle代理。@jonnii实际上NH 2.1支持注入,特别是来自DI容器的POCO实例化。我看过Castle的微内核。不过,我不知道它的使用范围有多广。我的意思是,它不在内部使用它来连接自身。感谢提供链接,我在上找到了这篇文章,澄清了疑问:-)我使用DynamicUpdate和LinFu,可以确认它们实际上可以很好地协同工作。