我正在一个环境中,企业主机应用程序通过ProgID调用已实现COM接口的客户端应用程序.这是主机应用程序的程序员允许使用插件增强应用程序的方式.
Host app <-> COM interface <-> Client app
Run Code Online (Sandbox Code Playgroud)
客户端应用程序可以使用提供的COM接口中的方法.
其中一种方法是RunSqlQuery(rawSqlQuery)
.它有可能在主机应用程序的登录用户范围内与SQL完全通信(基于连接身份验证类型,可以是Windows或SQL用户).
我正在寻找的是一种获取当前连接上下文的方法,该上下文是从宿主应用程序启动的,并将其用作DbContext的连接.
为什么?
为清楚起见,问题在哪里,类似的东西在SQL CLR世界中是众所周知的:
在SQL CLR UDF中,有可能将context connection=true
SqlConnection的连接字符串用作连接字符串(此处更多).
在上面的链接中,他们写道:
连接在与存储过程或函数不同的数据库会话中,它可能具有不同的SET选项,它在单独的事务中,它不会看到您的临时表,依此类推.
在该链接的其他地方:
您可能希望存储过程或函数在该连接的上下文中执行,以及其事务,SET选项等.这称为上下文连接.
小智 3
如果您使用 asp.net core,则只需 在appsettings.json文件中配置连接字符串。您的连接字符串设置通常显示在主机中。如果您找不到它,只需向在线顾问询问您的连接字符串。当我遇到类似的连接问题时,这就是我解决连接问题的方法
应用程序设置.json
"ConnectionStrings": { DefaultConnection": "Here_is_the_connectionstringSettings_that_is_given_by_your_host"}
Run Code Online (Sandbox Code Playgroud)