mvc4 アプリケーションを 2 つのプロジェクトに分割しました。1 つのメインと、メイン プロジェクトで参照される 1 つのモデル。ただし、CRUD コントローラーを作成しようとすると、で例外が発生しますControllerWithContext.tt(-1,-1)
。
FileNotFoundException: ファイルまたはアセンブリ .... またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
なにが問題ですか?
mvc4 アプリケーションを 2 つのプロジェクトに分割しました。1 つのメインと、メイン プロジェクトで参照される 1 つのモデル。ただし、CRUD コントローラーを作成しようとすると、で例外が発生しますControllerWithContext.tt(-1,-1)
。
FileNotFoundException: ファイルまたはアセンブリ .... またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
なにが問題ですか?
問題はEF接続文字列にあると思います。通常、埋め込みリソースを使用する場合はMetadata
、次のように EF ConStr に設定する必要があります。
Metadata=res://<assemblyFullName>/<resourceName>.
次*
のようにワイルドカードを使用することもできます。<assemblyFullName>
Metadata=res://*/model.csdl| ...
model
youe .EDMX ファイルの名前はどこにありますか。これにより、EF は実行時に次の場所でファイルを検索します。
別のプロジェクトからモデルを取得しようとしている場合は、メタデータにプロジェクトの完全な名前を入力する必要があります。
Metadata=res://MyModelPrj/model.csdl | ...
最後に、ソリューションに .EDMX ファイルのみが含まれている場合は、次を使用できます。
Metadata=res://*/
これは、ソリューション全体でモデルが 1 つしかない場合にのみ機能することに注意してください。ソリューションに複数のモデルがある場合、別のエラーが発生するだけです...!
詳細はこちら