【问题标题】:Moving from NHibernate to FluentNHibernate: assembly error (related to versions)?从 NHibernate 迁移到 FluentNHibernate:装配错误(与版本相关)?
【发布时间】:2010-05-16 05:15:28
【问题描述】:

不知道从哪里开始,但我已经获得了最新版本的 NHibernate,成功映射了最简单的业务对象等。当尝试迁移到 FluentNHibernate 并执行相同操作时,我在构建时收到此错误消息:

“System.IO.FileLoadException:可能 不加载文件或程序集'NHibernate, 版本=2.1.0.4000,文化=中性, PublicKeyToken=aa95f207798dfdb4' 或 它的依赖项之一。位于 程序集的清单定义确实 与程序集引用不匹配。”

背景:我是 Hibernate、NHibernate 和 FluentNHibernate 的新手——但不是 .NET、C# 等。

数据库 我有一个名为 Category:

的数据库表

(PK) CategoryID(类型:int),唯一,自动递增 UserID (type: uniqueidentifier) -- 给定 ASP.NET 数据库中用户 Guid 的值 Title (type: varchar(50) -- 类别的标题

涉及的组件:

  • 我有一个 SessionProviderClass,它创建到数据库的映射
  • 我有一个 Category 类,它包含 FluentNHibernate 的所有虚拟方法来覆盖
  • 我有一个 CategoryMap : ClassMap 类,它为实体进行流畅的映射
  • 我有一个 CategoryRepository 类,其中包含添加和保存类别的方法
  • 我有使用 CategoryRepository 类的 TestCatAdd.aspx 文件。

很乐意为其中任何一个发布代码,但我不确定是否有必要,因为我认为问题在于 FluentNHibernate 引用和我之前安装的 NHibernate 之间存在版本冲突。

提前感谢您提供的任何帮助!

【问题讨论】:

  • 看来该错误与您的代码无关,更多与项目引用有关。您是否尝试过删除引用并重新添加?

标签: asp.net sql-server-2005 nhibernate fluent-nhibernate


【解决方案1】:

没有“从 NHibernate 迁移到 FluentNHibernate”这样的东西。

FluentNHibernate 只是 NH​​ibernate 的一个插件,它提供了一种稍微不同的方式来创建映射。

错误信息很明确:您使用的是为 NHibernate 2.1.0 编译的 FluentNHibernate 版本,并且您尝试将它与 NHibernate 2.1.2 一起使用,因此版本冲突。

下载使用 NH 2.1.2 的 Fluent 版本或从源代码编译。

【讨论】:

    【解决方案2】:

    谢谢大家,

    真正的答案是删除并重新添加 FluentNHibernate 附带的程序集(包括 NHibernate 的兼容版本)。

    我还必须记得添加正确的引用(例如,在使用 NHibernate 时,我没有添加对 Castle.dll 的引用等)

    但是,这发现了更多问题,我将在单独的线程中发布。

    谢谢!

    【讨论】:

    • 这种方法的问题在于,您实际上是在使用一个过时的 NHibernate 版本,它错过了几个修复,只是为了使用 Fluent。
    • Fluent NHibernate 与 NHibernate 的最新 GA 版本一起工作,在我们发布 1.0 版本时是 2.1.0(我相信)。 master 分支现在在 2.1.2GA 上运行,这就是我们即将发布的 1.1 版本中的内容。
    猜你喜欢
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多