获取上下文连接并将其用作其他地方的连接



我正在一个环境中工作,在这个环境中,企业主机应用程序通过ProgID调用具有实现的COM接口的客户端应用程序。这就是主机应用程序的程序员允许使用插件增强应用程序的方式。

Host app <-> COM interface <-> Client app

客户端应用可以使用提供的 COM 接口中的方法。

其中一种方法是RunSqlQuery(rawSqlQuery).它可以在主机应用程序的登录用户范围内与SQL完全通信(根据连接身份验证类型,它可以是Windows或SQL用户(。

我正在寻找一种获取从主机应用程序启动的当前连接上下文并将其用作 DbContext 的连接的方法。

为什么?

  1. 我想使用一些ORM进行数据绑定,参数绑定,更改跟踪器等。
  2. 我可以为此使用自己的显式 SQL 连接,但使用自己的 SQL 连接,我无法访问本地临时表,这些表是在主机应用程序启动时在主机应用程序中创建的。主机应用程序严重依赖存储过程,而存储过程又与提到的本地临时表一起运行
  3. 在使用显式SQL连接(主SQL连接
  4. 保存主机应用程序(的情况下,我需要管理连接字符串中的连接凭据(当不允许SQL服务器身份验证混合模式时(

为了清楚起见,问题出在哪里,类似的事情在 SQL CLR 世界中是众所周知的:

在 SQL CLR UDF 中,可以使用context connection=true作为 SqlConnection 实例的连接字符串(更多内容请点击此处(。

在上面的链接中,他们写道:

连接与存储的数据库会话位于不同的数据库会话中 过程或功能,它可能有不同的SET选项,它位于 单独的事务,它看不到您的临时表,因此 上。

在该链接的其他地方:

您可能希望存储过程或函数在 该连接的上下文及其事务、SET 选项、 等等。这称为上下文连接。

如果你在 asp.net 核心中工作,你只需要配置appsettings.json文件中的连接字符串。连接字符串设置通常显示在主机中。如果找不到,只需向在线顾问询问您的连接字符串。当我遇到非常相似的连接问题时,这就是我解决连接问题的方式

appsettings.json

"ConnectionStrings": { DefaultConnection": "Here_is_the_connectionstringSettings_that_is_given_by_your_host"}

最新更新