Wie verwende ich ADO.net Entity Framework mit einer vorhandenen SqlConnection?

ado.net entity-framework sqlconnection

Frage

  1. Ich habe eine bestehende asp.net-Website, die eine SqlConnection verwendet.
  2. Ich habe das ADO.net Entity Framework hinzugefügt.
  3. Ich habe erfolgreich eine Verbindung zur Datenbank hergestellt und die .edmx-Datei erstellt.
  4. Ich kann über das Entity Framework eine Verbindung mit dem Verbindungsstring herstellen, der automatisch generiert wird.

Ich möchte das vorhandene SqlConnection-Objekt verwenden, das ich auf der gesamten Site für die Entity Framework-Verbindung verwende.
Ich möchte keine zweite Datenbankverbindung für die eine Seite verwenden, die das ADO.net Entity Framework verwenden wird, und ich möchte nicht die gesamte Site ändern, um die neue Entity Framework-Verbindungszeichenfolge zu verwenden.

Vielen Dank für Ihre Hilfe.

Akzeptierte Antwort

Dieser Forumsbeitrag hat die Antwort:

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: // * /" ist der Teil Ihrer EF-Verbindungszeichenfolge, der den Speicherort Ihrer XML-Zuordnungsdateien beschreibt - in diesem Fall eingebettete Ressourcen in der aktuellen Assembly.


Beliebte Antwort

Andrew Peters,

Vielen Dank für Ihre Antwort.

Ich bin mit dem System.Data.EntityClient.EntityConnection herumgegangen.

Es ist genau an meinen Fingerspitzen, aber es scheint nicht, dass der Parameter MetadataWorkspace funktioniert.

Dies ist das nächstliegende Beispiel, das ich gefunden habe (der Beitrag mit der Antwort):

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

Danke für jede Hilfe.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum