既存のSqlConnectionでADO.net Entity Frameworkを使用する方法

ado.net entity-framework sqlconnection

質問

  1. SqlConnectionを使用する既存のasp.net Webサイトがあります。
  2. ADO.net Entity Frameworkを追加しました。
  3. データベースに正常に接続し、.edmxファイルを作成しました。
  4. 自動的に生成される接続文字列を使用してEntity Frameworkを介して接続することができます。

Entity Framework接続には、サイト全体で使用している既存のSqlConnectionオブジェクトを使用します。
ADO.net Entity Frameworkを使用する予定の1ページに2番目のデータベース接続を使用する必要はありません。また、新しい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:// * /"は、XMLマッピングファイルの場所を記述するEF接続文字列の一部です。この場合、現在のアセンブリに埋め込まれたリソースです。


人気のある回答

アンドリューピーターズ、

ご回答ありがとうございます。

私は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は合法ですか? はい、理由を学ぶ