0

mvc4 アプリケーションを 2 つのプロジェクトに分割しました。1 つのメインと、メイン プロジェクトで参照される 1 つのモデル。ただし、CRUD コントローラーを作成しようとすると、で例外が発生しますControllerWithContext.tt(-1,-1)

FileNotFoundException: ファイルまたはアセンブリ .... またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

なにが問題ですか?

4

1 に答える 1

1

問題はEF接続文字列にあると思います。通常、埋め込みリソースを使用する場合はMetadata、次のように EF ConStr に設定する必要があります。

Metadata=res://<assemblyFullName>/<resourceName>. 

*のようにワイルドカードを使用することもできます。<assemblyFullName>

Metadata=res://*/model.csdl| ...

modelyoue .EDMX ファイルの名前はどこにありますか。これにより、EF は実行時に次の場所でファイルを検索します。

  • 呼び出し元のアセンブリ。
  • 参照されたアセンブリ。
  • アプリケーションの bin ディレクトリ内のアセンブリ。

別のプロジェクトからモデルを取得しようとしている場合は、メタデータにプロジェクトの完全な名前を入力する必要があります。

Metadata=res://MyModelPrj/model.csdl | ...

最後に、ソリューションに .EDMX ファイルのみが含まれている場合は、次を使用できます。

Metadata=res://*/

これは、ソリューション全体でモデルが 1 つしかない場合にのみ機能することに注意してください。ソリューションに複数のモデルがある場合、別のエラーが発生するだけです...!

詳細はこちら

于 2013-07-25T05:10:18.097 に答える