是否可以从实体框架的连接字符串中获取ADO连接字符串?

时间:2013-11-13 10:05:14

标签: ado.net connection database-connection connection-string

我的应用配置中有一个连接字符串:

<connectionStrings>
    <add name="MyEFConnection" connectionString="metadata=res://*/Model.AAA.csdl|res://*/Model.AAA.ssdl|res://*/Model.AAA.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MyComputer\SQLEXPRESS;initial catalog=ABCD;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

但在特定情况下,我想使用ADO.NET来执行T-SQL,所以我使用这段代码:

SqlConnection myConnection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyEFConnection"].ConnectionString);

但我得到一个例外,说Metada这个词是无效的。有没有办法在EF的连接字符串中使用这些信息,或者我需要在我的应用程序配置中添加一个新的字符串连接到ADO.NET连接?

感谢。

1 个答案:

答案 0 :(得分:1)

首先你需要更换&amp; QUOT;用一个单引号。 然后从连接字符串中创建实体EntityConnection:

EntityConnection entityConnection =  new EntityConnection(connectionString);

然后您可以从EntityConnection获取ADO的连接字符串:

 string ADOConnectionString = entityConnection.StoreConnection.ConnectionString;