适用于SQL Server 2014的NHibernate驱动程序和SQL方言

时间:2015-01-12 14:00:17

标签: sql-server nhibernate fluent-nhibernate sql-server-2014

我们有一个在 NHibernate.3.3.3.4001 上运行的应用程序。

我们已决定从SQL Server 2008 R2升级到SQL Server 2014。

以前,我们有以下流畅的配置:

var databaseConfiguration = MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)
            .Dialect<MsSql2008Dialect>();

databaseConfiguration = databaseConfiguration.Driver<Sql2008ClientDriver>();

我已经测试过,当我连接到 SQL Server 2014 数据库的实例时,该应用程序可以正常使用此配置。

  1. 我怎样才能使用2008年的司机和方言 连接到2014年的数据库?

  2. 将来我可能会出现任何可能出现的并发症吗?

  3. 在更高版本的NHibernate中是否支持2014年的驱动程序和方言?

1 个答案:

答案 0 :(得分:8)

以下功能取决于所使用的方言。

  • 分页,而不是使用MSSQL 2012及更高版本的本机SKIP / TAKE-Feature,分页是由子查询模拟的,该子查询为所有返回的行生成数字。这是一种不能执行本机功能的回退。
  • 序列,MSSQL 2012及更高版本现在具有与Oracle相同的功能。您可以创建一个生成递增数字的命名序列。 NHibernate的“增强型”生成器使用它来为插入的行生成PK。

问题#1:由于MSSQL 2008功能较少而MSSQL 2012只增加了新功能,因此可以使用较旧的驱动程序。

问题2:你放弃了我上面描述的一些选择。

问题3:NHibernate 4.0增加了MSSQL 2012,目前没有MSSQL 2014的方言存在。这绝对不是一个大问题,因为许多MSSQL 2014功能与OR-Mapper无关/透明。