获取上下文连接并将其用作其他位置的连接

时间:2018-06-13 07:32:41

标签: c# sql-server

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

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

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

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

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

为什么?

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

    在SQL CLR UDF中,可以使用context connection=true作为SqlConnection实例的连接字符串(更多here)。

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

      

    连接与存储的连接位于不同的数据库会话中   程序或功能,它可能有不同的SET选项,它在一个   单独的事务,它没有看到你的临时表,等等   上。

    在该链接的其他地方:

      

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

1 个答案:

答案 0 :(得分:0)

如果您使用asp.net内核,则只需配置 您的 appsettings.json 文件中的连接字符串。您的连接字符串设置通常显示在主机中。如果找不到,请向在线顾问咨询有关您的连接字符串的信息。这是我在遇到非常相似的连接问题时解决连接问题的方法

appsettings.json

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