SQL Server 2014 的 NHibernate 驱动程序和 Sql 方言

NHibernate Driver and Sql Dialect for 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 驱动程序和方言?

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

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

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

问题 #2:您失去了我上面描述的一些优化。

问题 #3:NHibernate 4.0 添加了 MSSQL 2012,目前不存在 MSSQL 2014 的方言。这绝对不是什么大问题,因为许多 MSSQL 2014 功能 irrelevant/transparent 用于 OR-Mapper。