如何將ADO.net Entity Framework與現有的SqlConnection一起使用?

ado.net entity-framework sqlconnection

  1. 我有一個使用SqlConnection的現有asp.net網站。
  2. 我添加了ADO.net實體框架。
  3. 我已成功連接到數據庫並創建了.edmx文件。
  4. 我能夠通過Entity Framework連接自動生成的連接字符串。

我想使用我在整個站點中用於Entity Framework連接的現有SqlConnection對象。
我不想為將要使用ADO.net實體框架的一個頁面使用第二個數據庫連接,並且我不想更改整個站點以使用新的Entity Framework連接字符串。

感謝您的任何幫助,您可以提供。

一般承認的答案

該論壇帖子有答案:

MetadataWorkspace workspace = new MetadataWorkspace(
  new string[] { "res://*/" }, 
  new Assembly[] { Assembly.GetExecutingAssembly() });

using (SqlConnection sqlConnection = new SqlConnection(connectionString))
using (EntityConnection entityConnection = new EntityConnection(workspace, sqlConnection))
using (NorthwindEntities context = new NorthwindEntities(entityConnection))
{
  foreach (var product in context.Products)
  {
    Console.WriteLine(product.ProductName);
  }
}

“res:// * /”是EF連接字符串的一部分,用於描述xml映射文件的位置 - 在本例中是當前程序集中的嵌入資源。


熱門答案

安德魯彼得斯

謝謝您的回答。

我一直在使用System.Data.EntityClient.EntityConnection。

它正好在我的指尖,但我似乎無法使MetadataWorkspace參數工作。

這是我找到的最接近的例子(帖子標記為答案):

http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/dd7b1c41-e428-4e29-ab83-448d3f529ba4/

謝謝你的幫助。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因