Ask*_*Ali 5 stored-functions asp.net-web-api2 in-memory-tables
每当我通过Web API访问具有内存表的存储过程TransactionScope时,都会出现此错误:
当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。在批处理结束时检测到不可提交的事务。交易回滚
我试图直接在SQL Server Management Studio中执行相同的存储过程,并且工作正常。
另外,当我TransactionScope从Web API中删除时,它也可以正常工作。但是我想TransactionScope在Web API内使用
在存储过程中,我有以下内容:
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
BEGIN TRY
SELECT ITEMID FROM SAMPLE_IN_MEMORY_TABLE
----
END TRY
BEGIN CATCH
--
END CATCH
Run Code Online (Sandbox Code Playgroud)
在Web API内部,按照以下方式使用存储过程
QueriesTableAdapter qa = new QueriesTableAdapter();
using (TransactionScope scope = new TransactionScope())
{
qa.SpSampleInMemoeryAccess(g_OutParameter64);
if (g_OutParameter64 > 0)
{
scope.Complete();
Status = true;
}
else
{
Status = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 0
您正在事务中间更改隔离级别。
TransactionScope 的默认隔离级别是SERIALIZABLE,但在存储过程中,您将其更改为 READ UNCOMMITTED (!!!希望您知道自己在做什么)。
任何一个:
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |