Comment utiliser ADO.net Entity Framework avec un SqlConnection existant?

ado.net entity-framework sqlconnection

Question

  1. J'ai un site Web asp.net existant qui utilise un SqlConnection.
  2. J'ai ajouté le ADO.net Entity Framework.
  3. Je me suis connecté avec succès à la base de données et j'ai créé le fichier .edmx.
  4. Je peux me connecter via Entity Framework avec la chaîne de connexion générée automatiquement.

Je souhaite utiliser l'objet SqlConnection existant que j'utilise dans tout le site pour la connexion Entity Framework.
Je ne souhaite pas utiliser une deuxième connexion à la base de données pour la page qui utilisera ADO.net Entity Framework et je ne souhaite pas modifier l'ensemble du site afin d'utiliser la nouvelle chaîne de connexion Entity Framework.

Merci pour toute l'aide que vous pouvez apporter.

Réponse acceptée

Ce post de forum a la réponse:

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: // * /" est la partie de votre chaîne de connexion EF qui décrit l'emplacement de vos fichiers de mappage xml - dans ce cas, les ressources incorporées dans l'assembly actuel.


Réponse populaire

Andrew Peters,

Merci pour votre réponse.

Je suis allé et vient avec le System.Data.EntityClient.EntityConnection.

C'est juste là au bout de mes doigts mais je n'arrive pas à obtenir le paramètre MetadataWorkspace pour qu'il fonctionne.

Voici l'exemple le plus proche que j'ai trouvé (le message marqué Réponse):

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

Merci pour toute aide.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow