nhibernate从v2.0升级到v4.1

nhibernate从v2.0升级到v4.1,nhibernate,Nhibernate,我们希望将一个相当大的老项目从Nhiberate v2.0升级到v4.1,以进一步提高性能。有没有人有什么有用的提示、方法或最佳实践?另一个选择是切换到实体框架,如果这更容易的话。猜猜升级需要多少天?至于升级本身,应该是开箱即用的,是的,你应该升级它,因为有很多改进和新功能 至于切换到实体框架,很多事情是如此不同。我怀疑您没有在NHibernate2.0中使用LINQ;在实体框架中,您需要使用LINQ。另外,映射是以一种完全不同的方式完成的,在实体框架中使用属性和代码。鉴于NH基本上处于停滞状态

我们希望将一个相当大的老项目从Nhiberate v2.0升级到v4.1,以进一步提高性能。有没有人有什么有用的提示、方法或最佳实践?另一个选择是切换到实体框架,如果这更容易的话。猜猜升级需要多少天?

至于升级本身,应该是开箱即用的,是的,你应该升级它,因为有很多改进和新功能


至于切换到实体框架,很多事情是如此不同。我怀疑您没有在NHibernate2.0中使用LINQ;在实体框架中,您需要使用LINQ。另外,映射是以一种完全不同的方式完成的,在实体框架中使用属性和代码。

鉴于NH基本上处于停滞状态,不提供异步操作,问题应该是何时开始迁移到EF,而不是是否。异步操作为web应用程序提供了巨大的好处,因为它们允许它们在等待数据库响应时使用更少的线程/CPU。我们开发了一个Windows应用程序,EF在这种情况下是否也更优越?甚至更多。如果您的应用程序阻止等待数据库,最终用户将立即注意到延迟。我不确定它是否会因其他帖子(例如)而开箱即用。所以我们只需要交换参考资料?你用的是LINQ吗?如果是这样,方法名现在应该是Query而不是Linq(如果我没记错的话)。如果您只使用了标准API或HQL,那么它应该是相同的。映射是向后兼容的,尽管可能有一些新的东西。另一个变化是IEsi集合:NH4现在使用.NET中的ISet接口,它不再需要IEsi。我们没有使用LINQ,也没有IEsi集合。我们在某些方法上遇到了一些问题,但我的问题可能是以前的开发人员重写了nhibernate源代码。为什么不向nhibernate用户邮件列表发送电子邮件呢?它可以在谷歌集团(nhusers)获得。