【问题标题】:What's the relationship between Castle, LinFu and Spring with NHibernate?Castle、LinFu 和 Spring 与 NHibernate 有什么关系?
【发布时间】:2013-07-30 21:47:51
【问题描述】:

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

我了解 NHibernate 有助于 DDD,并且可以使用 xml 或 Fluent NHibernate 将实体映射到数据库。但是想知道 Castle、LinFu 和 Spring 是如何与 NHibernate 关联的。

任何人都可以阐明或指出任何网络链接吗?

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    我个人用过Castle和LinFu。如果我也在使用其他 Castle 组件,例如 Windsor,我倾向于使用 Castle。事实上,Castle 也有一个 NHibernate 设施,这很有帮助。我在没有使用任何其他 Castle 组件时使用了 LinFu。

    这篇博文有点旧,但有一些有用的信息: http://nhforge.org/blogs/nhibernate/archive/2008/11/09/nh2-1-0-bytecode-providers.aspx

    查看这些问题的答案:

    What are the differences between LinFu.DynamicProxy and Castle.DynamicProxy?

    NHibernate proxy class, what should I choose?

    NHibernate 2.1 Proxy Factory options - what are the differences and which to choose?

    【讨论】:

    【解决方案2】:

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

    他们三个基本上都做同样的事情;由你决定你喜欢哪一个。

    【讨论】:

    • NH 不使用城堡进行依赖注入,它只使用城堡代理。
    • @jonnii 实际上 NH 2.1 支持注入,特别是来自 DI 容器的 POCO 实例化。我已经看到它是用 Castle 微内核完成的。我不知道它的使用范围有多广。
    • 我的意思是它不会在内部使用它来连接自己。
    【解决方案3】:

    虽然乍一看似乎都可以比较,但由于following issue 与S#arp Arhciture,我个人避免使用Linfu。这一点对我来说已经够糟糕了,以至于我永远都害怕枪。 Castle 供应商从来没有误导过我。

    【讨论】:

      【解决方案4】:

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

      不管怎样,dynamic-update 映射配置(FluentNHibernate 中的 DynamicUpdate())似乎只适用于 Castle。

      【讨论】:

      • 我使用 DynamicUpdate 和 LinFu 并且可以确认它们实际上可以很好地协同工作。
      猜你喜欢
      • 2011-02-28
      • 2020-03-06
      • 1970-01-01
      • 2020-02-04
      • 2014-08-17
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      相关资源
      最近更新 更多