gpt4 book ai didi

entity-framework - 仅 EntityFramework 中的事务不匹配

转载 作者:行者123 更新时间:2023-12-05 02:23:56 26 4
gpt4 key购买 nike

我有一个存储过程

CREATE PROCEDURE [dbo].[GetNextImageRequest]
(...) AS

DECLARE @ReturnValue BIT
SET @ReturnValue = 1

-- Set paranoid level isolation: only one access at a time!
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION

BEGIN TRY
...
UPDATE STATEMENT THAT THROWS FOREIGN KEY EXCEPTION

IF @@trancount > 0
BEGIN
COMMIT TRANSACTION
END
SET @ReturnValue = 0
END TRY

BEGIN CATCH
IF @@trancount > 0
BEGIN
ROLLBACK TRANSACTION
END
SET @ReturnValue = 1
END CATCH

SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET NOCOUNT ON

RETURN @ReturnValue -- 0=success

GO

当我从 Sql Server Management studio 手动调用它时,我没有得到任何异常。当我通过 Entity Framework 6 调用它时,我得到

Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 0.

我做错了什么?外键约束正在回滚,但我正在检查@@TRANCOUNT。

最佳答案

Entity Framework 6 (EF6)在 ExecuteSqlCommand 之前添加这一行

db.Configuration.EnsureTransactionsForFunctionsAndCommands = false;

关于entity-framework - 仅 EntityFramework 中的事务不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com