在基于 nhibernate 的项目中工作时, nhibernate 文档通常非常方便。我将文档的 pdf 副本保存到 nhibernate 1.0 和1.2 在我的硬盘驱动器上, 因为我永远不知道何时需要引用它们。不幸的是, nhibernate 队似乎在2.0 版方面丢球了。nhibernate 网站不仅缺乏关于2.0 版的任何文档, 该网站的行为就好像2.0 版甚至还没有发布。与以前对框架的更新不同, 2.0 版表示对代码库的完全重构, 许多命名空间和对象已删除或重命名。尽管缺少官方文档, 但仍有多种资源可帮助您将现有的 nhibernate 1.2 应用程序迁移到 nhibernate 2.0。
重大更改的列表
nhibernate 论坛有一个主题, 讨论1.2 版和2.0 版的 alpha 预发行之间的重大更改。对于完整的列表, 请查看论坛, 但这里是您最有可能面临的。
问题: nhibernate. 表达式命名空间不再存在。
概述: 以前保存在此命名空间中的最值得注意的项是创建 icriteria 时使用的表达式对象。幸运的是, 这个物体仍然存在于 nhibernate 中。
解决方案: 替换所有 "正在使用" 的语句以反映命名空间的更改。
使用 nhbernna。这条线路不再需要在 nh 2。0 使用 nhbernate. 标准; 用这条线代替它。
问题: 不再使用 n触及配置部分 (很可能在 web. config 或 app. config 中)。
概述: nhibernate 2.0 不再查看名为 nhibernate 的配置部分, 而是查找名为 "休眠配置" 的配置部分 (请注意休眠中缺少 "n" 个)。此外, 配置部分不是简单地重命名的, 它承载着完全不同的架构。
解决方案: 简而言之, 整个配置部分将需要稍微重新设计。
首先, 您的配置部分声明必须更改其名称和类型:
<configuration></configuration> <configSections></configSections> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" requirepermission="false"></section>