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 数据库的实例时,应用程序可以正常使用此配置。
我怎么可以同时使用2008的驱动和方言
连接到 2014 数据库?
有没有我忽略的未来可能出现的并发症?
在更高版本的 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。
我们有一个 运行 在 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 数据库的实例时,应用程序可以正常使用此配置。
我怎么可以同时使用2008的驱动和方言 连接到 2014 数据库?
有没有我忽略的未来可能出现的并发症?
在更高版本的 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。