使用 Informix 在实体框架中将隔离级别设置为 DIRTY READ

问题描述 投票:0回答:1

有没有办法在 Entity Framework 5 中使用 Informix 数据库或 LOCK MODE TO WAIT 设置隔离级别?

我尝试在创建 DbContext 对象时使用 SQL 查询设置隔离。

var dataContext = new DatabaseNameContext();  
dataContext.Database.ExecuteSqlCommand("SET ISOLATION TO DIRTY READ");

但这似乎不起作用。我仍然遇到锁定异常:

IBM.Data.DB2.DB2Exception (0x80004005): ERROR [IX000] [IBM][IDS/UNIX64]
Could not do a physical-order read to fetch next row.
(-107 ISAM error: record is locked.

我尝试将 TransactionScope 与 System.Transactions.IsolationLevel.ReadUncommited 一起使用,但它抛出异常:

IBM.Data.DB2.DB2Exception (0x80004005): ERROR [58005] [IBM][IDS/UNIX64]
SQL0998N Error occurred during transaction or heuristic processing.
Reason Code = "16". Subcode = "2-8004D026".

您能解释一下出了什么问题以及如何解决吗?

entity-framework-5 informix isolation-level dirtyread
1个回答
0
投票

dataContext.Database.ExecuteSqlCommand("SET LOCK MODE TO WAIT 20");  

它对我有用:)可能对某人有用......

© www.soinside.com 2019 - 2024. All rights reserved.