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

bal*_*_88 6 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>();
Run Code Online (Sandbox Code Playgroud)

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

  1. 如何在连接到2014数据库时使用2008驱动程序和方言?

  2. 我忽略了将来可能出现的任何复杂情况吗?

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

hes*_*b82 8

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

  • 分页,而不是使用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功能与OR-Mapper无关/透明.