私はEntityFrameworkPOCOアダプターを使用していますが、メタデータに関してMicrosoftがアクセスできるものに制限があるため、xmlから必要な情報を手動で抽出しています。唯一の問題は、app.configで接続文字列ノードを直接チェックすることなく、ssdl、msl、csdlファイル名をロードすることです。要するに、ObjectContext / EntityConnectionのどこでこれらのファイル名にアクセスできますか?最悪のシナリオでは、EntityConnectionオブジェクトから接続名を取得し、これをapp.configからロードして、文字列自体を解析し、ファイル名を自分で抽出する必要があります。(しかし、私は明らかにそれをしたくありません)。ありがとう
2 に答える
0
ObjectContext.MetadataWorkspaceを見ましたか?使用するのが最も簡単なライブラリではありませんが、必要なすべての情報を取得することができました。
Julia Lermanは、彼女のEF本の中でこの主題に関する優れた章を持っています。
于 2009-08-20T16:13:14.320 に答える
0
ここでリフレクションを使用するには、次の 2 つの方法が考えられます。
EntityConnection を掘り下げます。接続文字列は、プライベート変数としてどこかにあるはずです。
EDM メタデータ ファイルは、既定でリソースとしてアセンブリに埋め込まれます。EDM を含むアセンブリを反映し、ファイルを直接引き出すことができるはずです。EDM を含むアセンブリで Reflector を使用すると、埋め込まれた msl、ssdl、csdl が表示されます。
オプション 2 は全体的により堅牢だと思います。
于 2009-08-20T16:01:59.647 に答える