Transactions 火鸟2.5+;EF6,如何将事务设置为等待

Transactions 火鸟2.5+;EF6,如何将事务设置为等待,transactions,firebird,entity-framework-6,Transactions,Firebird,Entity Framework 6,如何在EF6中使用firebird provider 4.0 EF6将事务设置为等待。默认值是no wait,因此我得到了很多异常 要设置事务隔离级别,我使用dbContext.Database.StartTransaction()。我尝试使用隔离级别serializable来序列化对一个表的访问。我只读取一个值,添加一个常量,然后写回新值 我总是在no wait事务上遇到异常锁冲突,这就是为什么我要使用等待另一个事务结束的事务。在FbConnection上使用BeginTransaction重

如何在EF6中使用firebird provider 4.0 EF6将事务设置为等待。默认值是no wait,因此我得到了很多异常

要设置事务隔离级别,我使用
dbContext.Database.StartTransaction()
。我尝试使用隔离级别serializable来序列化对一个表的访问。我只读取一个值,添加一个常量,然后写回新值


我总是在no wait事务上遇到异常
锁冲突
,这就是为什么我要使用等待另一个事务结束的事务。

FbConnection
上使用
BeginTransaction
重载,您可以在其中指定
TPB
,从而实现与Firebird相关的任何功能。然后使用方法告诉实体框架使用该事务。

锁冲突应该非常少,您使用的隔离级别是什么,或者您是在从许多不同的客户端(或线程)更新相同的记录?正如我上面所写的,我使用serializable。是的,我从不同的客户端读取相同的记录并更新该记录。所以,没有办法保持数据库独立?我将EF用于一些数据库,如MS-SQL、Firebird、Oracle等(这取决于客户使用的是哪个数据库)。如果您使用的是Firebird特定的数据库(指定wait/nowait TPB),您如何保持独立性?我使用isolationlevel serialize,使用MS SQL,它将等待直到第一个事务结束。FB没有。这就是为什么我会改变FB的行为。就这些。:-)是的,因为Firebird让你选择你想要的行为。无等待是驱动程序中的默认值。是否可以在连接字符串中设置行为?