1

私の MyModel.edmx はアセンブリ DataAccess.dll にあります。このアセンブリは、私の Web プロジェクト (C#) で参照されています。

私のエンティティ接続文字列が問題です。

これは、app.config から win.config にコピーしたものです。

<add name="MyModelEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxx;initial catalog=xxx;persist security info=True;user id=xxx;password=xxx;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

問題は、メタデータ ソースを読み込めないというエラーが表示されることです。

モデル名が正しいと確信しています。Reflectorでdllをチェックしました。

だから、自分のdllを接続文字列に含めるべきだと思っていて、これを試しました

<add name="MyModelEntities" connectionString="metadata=res://DataAccess.dll/MyModel.csdl|res://DataAccess.dll/MyModel.ssdl|res://DataAccess.dll/MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxx;initial catalog=xxx;persist security info=True;user id=xxx;password=xxx;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

しかし、DataAccess.dll can't be found in list of assembly enumerationsというエラーが発生しています。

私のモデルをdll内で直接参照する方法はありますか? そして、私のdllは厳密にdllという名前ではありません。

どんな助けでも大歓迎です。

ありがとう

4

2 に答える 2

0

私は bobetko と同様の経験があり、プロジェクトとデータベースを Entity Framework 5 で再作成し、しばらくの間動作させました。(VS 2013 Express および SQL Server 2008 R2)

それから、私はこれを行い、すべての問題を解決しました...

モデル ファイルとマッピング ファイルを出力ディレクトリにコピーするには

  1. ソリューション エクスプローラーで .edmx ファイルをダブルクリックします。
  2. エンティティ デザイナーでファイルが開きます。
  3. デザイン サーフェイスの空のセクションを右クリックし、[プロパティ] を選択します。
  4. Visual Studio の [プロパティ] ウィンドウが表示されます。
  5. Metadata Artifact Processing プロパティの値を [Copy to Output Directory] ​​に設定します。

http://msdn.microsoft.com/en-us/library/vstudio/cc716709(v=vs.100).aspx

VS は、同じデータベースへの複数の接続を持つソリューション内の複数のプロジェクトによって混乱すると思います。上記の修正で問題が解決し、壊れたプロジェクトが修復されました。

于 2014-03-31T20:50:11.443 に答える