gpt4 book ai didi

c# - 在托管和非托管代码之间共享数据库事务

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:58 24 4
gpt4 key购买 nike

我有 .net3.5 C# 应用程序。

应用程序使用 EntityFramework 作为其数据库接口(interface)。

此应用程序调用也使用数据库的 c++ 非托管 dll。此 dll 更新数据库。

我希望能够回滚。我希望此操作包括主应用程序所做的更改和 dll 所做的更改。

我该怎么做?我可以与 dll 共享相同的数据库连接吗?我可以与 dll 共享事务吗?

谢谢,

马坦

最佳答案

使用 Entity Framework ,您可以提供自己的SqlConnection 实例。然后,您可以使用此实例开始交易。这使您可以控制数据库连接,这是一个开始。

关于非托管代码,我建议您允许从 DLL 进入托管代码的入口点,这允许它在此 SqlConnection 上执行 SQL。

因为 SqlConnection 类完全用托管代码编写,所以不可能将实际的连接句柄传递给非托管代码并允许正常的非托管函数使用此连接。因为您以 Entity Framework 为起点,您将需要 SqlConnection,因此让 DLL 将 SQL 语句发送到托管连接可能是唯一的方法。

关于c# - 在托管和非托管代码之间共享数据库事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4077401/

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