1. ホーム
  2. .net

エンティティフレームワーク 指定されたメタデータリソースをロードできない【重複

2023-09-15 07:35:06

質問

重複の可能性があります。

MetadataException: 指定されたメタデータ・リソースを読み込むことができません。

私はここで他の記事と他のサイトで数十を試してみましたが、私はこれを動作させることができます。

エンティティフレームワークはすべて動作していましたが、翌日からエラーが出るようになりました。エンティティ クラスのコンストラクタで、指定されたメタデータ リソースをロードできません。

接続文字列をチェックし、すべてを削除して追加し直しましたが、まだ動作していません。

私のモデルの名前空間は、WraithNath.co.uk.Models です。

メタデータはアセンブリに埋め込まれています。

私の接続文字列は以下の通りです。

<add name="ConnectionString" connectionString="Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\WraithNath.co.uk.mdf;Integrated Security=True;" providerName="System.Data.SqlClient" />
   <add name="Entities" connectionString="metadata=res://*/Models.WraithNath.co.uk.csdl|res://*/Models.WraithNath.co.uk.ssdl|res://*/Models.WraithNath.co.uk.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\WraithNath.co.uk.mdf;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

Reflectorでアセンブリを見たところ、必要な3つのファイルが見当たりません。

これを解決するためのステップバイステップのガイドはありますか? 私はすでに、検索結果 'entity framework Unable to load the specified metadata resource' について、Google の最初の 3 ページのすべてのリンクを試しました。

どのように解決するのですか。

クレイグ・スタンツ は、この正確なエラー メッセージのトラブルシューティングに関する広範な (私の意見では) ブログ記事を書いているので、個人的にはそこから始めます。

次のような res: (リソース)参照は、あなたのモデルを指す必要があります。

<add name="Entities" connectionString="metadata=
    res://*/Models.WraithNath.co.uk.csdl|
    res://*/Models.WraithNath.co.uk.ssdl|
    res://*/Models.WraithNath.co.uk.msl;

それぞれ、"*/" の後に .edmx ファイル名があり、"edmx" がその res の拡張子 (.csdl, .ssdl, または .msl) に変更されていることを確認します。

また、"//*/" を使用するよりも、アセンブリを指定する方が役に立つかもしれません。

最悪の場合、すべてをチェックすることができます (少し遅いですが、常にリソースを見つけることができます)。

<add name="Entities" connectionString="metadata=
        res://*/;provider= <!-- ... -->