将 NHibernate 从 1.2 升级到 3.2 时需要注意啥?

Posted

技术标签:

【中文标题】将 NHibernate 从 1.2 升级到 3.2 时需要注意啥?【英文标题】:What to be aware of when upgrading NHibernate from 1.2 to 3.2?将 NHibernate 从 1.2 升级到 3.2 时需要注意什么? 【发布时间】:2011-12-05 16:31:22 【问题描述】:

问题说明了一切。使用使用 NHibernate 1.2 的旧代码库。作为此次升级的一部分,我将获得什么,我将失去什么,或经历什么痛苦?付出的全部努力是否值得,如果是,这些好处是什么?当我在做这件事的时候,仅仅迁移到 Fluent NHibernate 是否有意义?

【问题讨论】:

你读过release notes吗? 【参考方案1】:

这实际上取决于您使用的休眠功能。获取发布节点并查看您正在使用的是否有任何东西。大多数功能在 3.2 中仍然可以正常工作。您必须对映射文件进行一些升级。

当时我会做一个改变。所以让它在没有流利的情况下工作,并决定是否值得流利。您还应该看看 QueryOver 和 linq 的用法。

【讨论】:

【参考方案2】:

NH 3.2 中最有趣的新功能之一是您现在可以使用代码进行映射,而不是使用 HBL 文件。这是 FNH 多年来一直拥有的相同功能,但已集成到主要的 NH 项目中。

我自己没有在 NH 中使用过这个(我是 FNH Automapping 的忠实粉丝),但我的阅读表明,许多 FNH 用户认为这比 FNH 的同类产品更不成熟。

FNH 仍然领先于 NH 数英里的一个领域是前面提到的自动映射。 NH 还没有这样做(尽管有一些误导性的博客文章暗示它这样做)。

可能对您当前的项目没有多大价值(您已经经历了设置 HBL 文件的痛苦),但对于新项目可能非常有价值。我们在项目中使用它,它几乎可以让我们随意改变我们的对象模型,并让Automapping为我们重建数据库。

最后,在我写这篇文章的时候,还没有正式发布带有 NH 3.2 的 FNH。我一直在尝试最新的 FNH 版本 (1.3),但它“还没有完全实现”。不过应该很快了。

【讨论】:

【参考方案3】:

Nhibernate 3.2 有一个主要功能的 Linq 提供程序,如果您喜欢 Linq,这很好。

【讨论】:

以上是关于将 NHibernate 从 1.2 升级到 3.2 时需要注意啥?的主要内容,如果未能解决你的问题,请参考以下文章

Web项目从Oracle转为Mysql,fluentnhibernate-1.0和NHibernate2.1.0升级到NHibernate3.3的注意事项

NHibernate 升级使用具有类型约束的方法破坏 EntityBase

使用 Fluent NHibernate 和 NHibernate 3 将枚举映射为 Int

将 tensorflow 从 2.1.2 升级到 2.3.0 后,Tensorboard 无法使用

NHibernate 3 LINQ:如何过滤 IQueryable 以仅选择 T 类及其子类的对象?

是否值得将现有的 iOS 应用程序从 Phonegap 1.2 升级到 1.9?