2

我想知道如果一段代码试图在不开始事务的情况下将对象保存到数据库中,我们是否可以扩展 NIBerate 以引发异常?由于开始事务是调用 Save() 正常工作的必要条件,因此我看不到程序员在不首先开始事务的情况下调用 Save()。

4

1 回答 1

2

解决方案不在异常抛出中。这是为了让我们(项目的开发人员)知道我们在做什么在哪里

1)项目共享方法。首先,向团队解释应用程序的架构是如何工作的。现在,所有团队成员都应该使用Unit of WorkSession per Request模式。

2)冲洗模式。其次,解释一下Session对象的概念。ISession. Save()orUpdate()远离 SQL 执行INSERTor UPDATE。什么是ISession.Flush()。并且(基于第一步)我们可以决定Flush()何时发生。

我建议将 FlushMode 设置为 onCommitNone(使用显式调用)。然后,如果团队成员想要执行任何写入命令 - 一个标准的地方,一种常见的方式(用于项目)将指导 hin/她。

调用Session.Flush()应该/将/必须包含在transaction.

于 2013-02-10T04:34:06.560 回答