質問

私は、Entity Frameworkのに上でLINQを使用してから私のDALを切り替えます。私のアプリケーションは、現在のユーザーに応じて、異なるデータベースに接続しているので、私は、実行時に動的にDataContextを作成し、適切な接続文字列で渡す必要があります。私はプログラム的に私の古い接続文字列を使用してEntity Frameworkの接続を作成しようとしたときただし、接続に失敗しました。それは正確には、接続文字列で、「サーバー」をキーを認識しなかったことに不満を述べています。

私は私が仕事にEntity Frameworkの接続を取得するために、これを行うために必要なことが判明します:

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";
entityBuilder.ProviderConnectionString = clientConnectionString;
entityBuilder.Metadata = "res://*/xxxxxxxxxx.csdl...";
Entities entities = new Entities(entityBuilder.ToString());

これはなぜ
?です メタデータプロパティとは何ですか?
それは、複数の異なる接続のためにその常に同じ問題をしようとしている?
それは何をすべきですか?
これを回避する方法はありますか?

事前に感謝します!

アップデート1: 更新Randolphoのおかげで、しかし...
私はこの問題を抱えている全体の理由は、私が設定ファイルに接続文字列を格納することができないということです。接続文字列は動的にユーザが接続されることによって、実行時に決定されます。

ここに私の正確なシナリオは次のとおりです。
ユーザAが接続されている場合は、ユーザBが接続されている場合は、アプリケーションがデータベースAからデータを引き出し、アプリデータベースB.
からデータをプル 接続文字列は、メインデータベースに格納され、その数は、潜在的に無限です。私は、ユーザーを追加するたびに、私はそれが最終的に巨大になるだろうという事実を言及しないように、web.configファイルに移動する必要がありますする必要はありません!

役に立ちましたか?

解決

あなたは非常に有益これらのリンクがあります:

http://msdn.microsoft。 COM / EN-US /ライブラリ/ system.data.entityclient.entityconnection.connectionstring.aspxする

ます。http:// weblogs.asp.net/pgielens/archive/2006/08/21/ADO.NET-Entity-Framework-Metadata.aspxする

ボトムライン? Entity Frameworkのは、あなたのエンティティのマッピングを構築するためにメタデータを必要とします。

また、あなたの設定ファイルにアウトあなたの接続情報を移動することを検討してではなく、コードでそれを構築する必要があります。最初のリンクはそれを行う方法を紹介します。

他のヒント

Randolphoの答えを拡張します:

のメタデータプロパティは、具体的に.SSDL(ストレージモデル).CSDL(概念モデル)と.MSL(マッピングモデル)ファイルの場所を指します。これらの3つのファイルが、基本的にエンティティデータモデルです。 「RES://」URIスタイル修飾子は、ファイルがコンパイルEDMアセンブリ内のリソースとして埋め込まれていることを示している。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top