NHibernate:如何使用SQL Server延迟耐久性?

时间:2014-07-15 17:56:53

标签: nhibernate

SQL Server 2014中的新功能是延迟耐久性。

通常最好在事务级别使用它(用于需要速度的特定事务,并且可以容忍数据丢失的小变化)。

我们使用NHibernate 3.2。是否有一种直接的方法可以将延迟持久性标记添加到提交中:

COMMIT TRANSACTION WITH (DELAYED_DURABILITY = ON);

在交易层面?例如,在我想要它的一些地方,而不是到处都是。

1 个答案:

答案 0 :(得分:1)

NHibernate直接使用IDbTransaction.Commit(),因此您必须使用本机SQL发出提交。这样做会干扰NHibernate中的许多其他机制,比如事件,拦截器......所以我认为这不是正确的做法。

我个人不明白为什么微软选择这样的语法而没有提供另一种方法。我希望应该有一个像SET TRANSACTION DURABILITY DELAYED之类的命令可以在提交之前发出,但是没有。