Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在没有连接字符串的情况下打开EntityConnection_Sql Server_Vb.net_Entity Framework - Fatal编程技术网

Sql server 如何在没有连接字符串的情况下打开EntityConnection

Sql server 如何在没有连接字符串的情况下打开EntityConnection,sql-server,vb.net,entity-framework,Sql Server,Vb.net,Entity Framework,我需要在没有连接字符串的情况下打开实体框架的连接 由于我们使用的是I'm安全层,我们不允许使用连接字符串连接到SQL Server,因此我们有一个返回打开的SqlConnection的DLL EF版本:6.2.0 错误: MetadataWorkspace必须预先注册EdmItemCollection 我试图将entityConnection设置为SqlConnection,但出现了一个错误 示例代码: Public Shared Function getEntityConnection()

我需要在没有连接字符串的情况下打开实体框架的连接

由于我们使用的是I'm安全层,我们不允许使用连接字符串连接到SQL Server,因此我们有一个返回打开的
SqlConnection
的DLL

  • EF版本:6.2.0
错误:

MetadataWorkspace必须预先注册EdmItemCollection

我试图将
entityConnection
设置为
SqlConnection
,但出现了一个错误

示例代码:

Public Shared Function getEntityConnection() As EntityConnection
      Dim workspace As New MetadataWorkspace()
      Return New EntityClient.EntityConnection(workspace, AppCommon.AppFunctions.AppGetSQLCon(True))
End Function
AppCommon.AppFunctions.AppGetSQLCon(True)
是返回
SqlConnection
实例的函数


但是它不起作用了,有人能解决这个问题吗?

最后我找到了连接entityframework而不使用连接字符串的解决方案,因此您需要的是以下内容:

  • 更改实体“DbContext”的构造函数以从如下函数接收连接:
  • 然后在该函数中,从打开的sqlconnection对象返回实体连接对象,如下所示:

  • 现在您的entityframework连接到数据库时没有连接字符串

    请提供:EF version,哪个异常,并指出在哪行代码处引发异常。更新了问题,抱歉,因为这是您自己的自定义代码,没有任何标准,真的很难帮你做任何事情……我只是在寻找一种解决方案,在没有连接字符串的情况下打开EF连接。你读过吗?我希望如此,因为这是我在网上搜索您的错误消息时的第二个结果。
        Public Sub New()
            MyBase.New(getEntityConnection(), False)
        End Sub
    
    Public Shared Function getEntityConnection() As EntityConnection
        Dim workspace As New MetadataWorkspace(New String() {"res://*/"}, New Assembly() {Assembly.GetExecutingAssembly()})
        Return New EntityClient.EntityConnection(workspace, getSqlConnectionObject())        
    End Function