nhibernate - 在 ASP.NET 网站中实现 NHibernate 时出错

标签 nhibernate

我正在尝试将 NHibernate 实现到我的 Web 应用程序中。我遇到一个错误,其中说:

Method 'IsInstrumented' in type 'NHibernate.ByteCode.Castle.ProxyFactoryFactory' from assembly 'NHibernate.ByteCode.Castle, Version=2.1.2.4000, Culture=neutral,
PublicKeyToken=aa95f207798dfdb4' does not have an implementation.



有谁知道如何解决这个问题?

最佳答案

确保您已将以下 dll 复制到输出文件夹和 loaded通过 w3wp.exe(如果您使用 IIS):

  • NHibernate.ByteCode.CaSTLe.dll
  • CaSTLe.Core.dll
  • NHibernate.dll
  • Iesi.Collections.dll
  • log4net.dll

  • 你的 NHibernate 配置有这一行:
    <property name="proxyfactory.factory_class">
    NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
    </property>
    

    作为一种选择,您可以尝试升级到最新版本的 NHibernate - 3.2。他们有一个内置的代理生成器,所以对你来说应该更简单。您将不需要这些额外的 dll。如果您使用 NHibernate 3.2,只需删除上面的配置行。

    如果由于某些原因您无法升级到 3.2,您可以考虑使用不同的 byte code providers . NHibernate 开箱即用地支持其中 3 个。试试 LinFu 或 Spring:
  • NHibernate.ByteCode.CaSTLe.ProxyFactoryFactory
  • NHibernate.ByteCode.LinFu.ProxyFactoryFactory
  • NHibernate.ByteCode.Spring.ProxyFactoryFactor
  • 关于nhibernate - 在 ASP.NET 网站中实现 NHibernate 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7059632/

    相关文章:

    c# - Fluent nHibernate PropertyRef 急切地获取引用的记录。我可以禁用它吗?

    nhibernate - NH 3.3 Composite-ID 通过代码映射

    nHibernate一对多持久化最佳实践避免INSERT NULL

    NHibernate、事务和 TransactionScope

    sql-server - Fluent Nhibernate 中的主键名称

    c# - nHibernate ICriteria 加入条件

    nHibernate Future<T>,加载顺序困惑

    nhibernate - 如何在不更新整个对象的情况下更新 Fluent NHibernate 中类的特定字段?

    c# - 保存实体时重复子条目

    nhibernate - 如果表中没有索引,如何配置 NHibernate 映射到数组?