c# - 在 ADO 中使用 Entity Framework 连接字符串

标签 c# entity-framework ado.net connection-string

我们需要在主要 Entity Framework 应用程序的一小部分中使用老式的 ADO 数据库连接。

我们可以在这部分代码中手动指定连接字符串,但考虑到连接字符串已经存在于 App.Config 中,这似乎是多余的。

但是,当我们使用配置管理器检索连接字符串时,它会带来 Entity Framework 使用的所有元数据。

这会导致错误,因为 ADO 无法识别元数据关键字。

如何解析此连接字符串以删除元数据并仅获取纯 ADO 连接字符串?

最佳答案

您可以从 DbContext 获取 DbConnection 实例:

var context = new YourDbContext();
var connection = context.Database.Connection;

当然,您可以从连接中获取连接字符串,但您不需要,因此您可以使用已经存在的连接对象。


这是 connection 对象的快速观察 - 如您所见,它是一个简单的 ADO.NET SqlConnection 对象,带有顺序连接字符串。

enter image description here

在配置文件中,我有带有元数据的 Entity Framework 连接字符串:

  <connectionStrings>
    <add name="NorthwindEntities"
         connectionString="metadata=res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=Northwind;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
  </connectionStrings>

关于c# - 在 ADO 中使用 Entity Framework 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23676020/

相关文章:

c# - 如何在 Entity Framework 中处理这种层次结构

c# - 为什么 Silverlight 绑定(bind)不起作用?

entity-framework - Entity Framework Code First - 减少使用 .Load() 和 .Local 的往返

c# - 如果操作首先完成,则使用 RegisterWaitForSingleObject

C# - 使用 session 变量将用户 ID 从选定的 GridView 列传递到另一个页面

asp.net-mvc - SimpleMembership MVC 4从在webpages_Roles中具有角色的UserProfile获取数据

c# - Enumerable.Any() 在大型 Linq 数据集上非常慢

entity-framework - Code First 一对多关系的多个外键

.net - 如何编写可与 SqlServer 和 Oracle 一起使用的 .Net 应用程序(现在 System.Data.OracleClient 已弃用)

c# - 使用 SqlHelper.ExecuteDataSet() 执行 SQL Server 存储过程并获取返回值