2013-02-01 91 views
17

私はEntity Frameworkに重大な問題を抱えており、何が起きているのか分からないようです。指定されたメタデータリソースを読み込めません

Funscribe.Data(ここにありEDMXファイル):私は簡潔にするために3つのプロジェクトを持っているhttp://blogs.teamb.com/craigstuntz/2010/08/13/38628/

:に位置MetadataException: Unable to load the specified metadata resource、有名なクレイグStuntzのブログ投稿:

は私が上に提供多くのオプションを試してみました

Funscribe.Console(コンソールアプリケーション)

Funscribe.Web(MVC 3 APP)

元はMVCアプリだけで、最近私はこの新しいコンソールプロジェクトを追加しました。

私はweb.configファイルから接続文字列をコピーして、私のはapp.configにそれを適用:

<add name="FundirectoryEntities" connectionString="metadata=res://*/Fundirectory.csdl|res://*/Fundirectory.ssdl|res://*/Fundirectory.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

私のMVCアプリが動作するように続けますが、私は、コンソールアプリケーションを実行したとき、私は恐ろしいを得る:

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

私はワイルドカード設定に接続文字列を変更してみました:

<add name="FundirectoryEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

私が取得: 指定されたデフォルトEntityContainer名「FundirectoryEntitiesは、」マッピングとメタデータ情報に見つかりませんでした。

私はそれがアセンブリを指定するために変更してみました:

<add name="FundirectoryEntities" connectionString="metadata=res://Funscribe.Data.dll/Fundirectory.csdl|res://Funscribe.Data.dll/Fundirectory.ssdl|res://Funscribe.Data.dll/Fundirectory.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

私が手:アセンブリを解決 はできません 'Funscribe.Data.dll'。

私はここで何をすべきか迷っています。私はこのプロジェクトをVisual Studio 2012にアップグレードしました(VS 2012に変換した後、この新しいコンソールアプリケーションを紹介します)。

また、Funscribe.Data.dllがコンソールプロジェクトのbinフォルダ内にあることに気付きました。これらのファイルを手動で削除して再作成するのを見ました。 そして、私が困惑しているのは、ウェブアプリケーションが正しく動作することです。

すべてのプロジェクトは.NET 4.0です。コンソールアプリケーションは、クライアントプロファイルのバージョンではなく.NET 4.0を使用します。

この件に関するお手伝いをさせていただきます。

答えて

19

は、Entity FrameworkのモデルとアプリケーションのメタデータパラメータはMvc.Data.dllは次のようになりますシンプル呼ばれるアセンブリでModel.edmxと呼ばれる:

<connectionStrings> 
    <add name="MyEntities" connectionString="metadata= 
      res://Simple Mvc.Data.dll/Model.csdl| 
      res://Simple Mvc.Data.dll/Model.ssdl| 
      res://Simple Mvc.Data.dll/Model.msl;provider= <!-- ... --> 

の三つの部分ごとに1つの参照があるので、あなたが見ることができます実行時に必要なEDMXそれらはすべて同じように動作しますので、最初の方を詳しく見てみましょう。 CSDL参照は次のようになります。

  • 私たちは、リソースからCSDLをロードしている:

     res://Simple Mvc.Data.dll/Model.csdl 
    

    それは3つのことを指定します。それは"res://" part.

  • リソースを含むアセンブリの名前は、"Simple Mvc.Data.dll"です。アセンブリに強い名前が付いている場合は、厳密な名前をすべて冗長な栄光で指定できます。

  • リソース自体の名前、"Model.csdl"。これをEDMXまたはモデル名と混同しないでください。この場合、拡張子を除いて同じものになりますが、必ずしもそうではありません!

あなたのリソースは、あなたのモデルと同じ 名前を持つように発生しない場合、またはアセンブリをロードすることが起こるしない場合、それはおそらく失敗します。

詳細についてはTroubleshooting Entity Framework Connection Strings

私はこれがあなたに役立つことを願って、これをチェックしてください。

+2

恐ろしい答えです。これは私を助けてくれました! – Grasshopper

0

MetadataException:これは、アプリケーションがEDMXをロードすることができないことを意味指定されたメタデータリソース

を読み込むことができません。

これは原因として考えられる原因がいくつかありますが、無効な接続文字列が原因である可能性があります。

可能なソリューション:

ご予約の流れ接続文字列 2.Refreshは、私の場合はmodel.edmx

http://mvc4asp.blogspot.in/

1

で "データベースからのアップデートモデル" 3.Selectオプションをmodel.edmx connectionStringはリソースファイルを検索しようとしていますが、できません。

右クリックEDMXダイアグラム - >プロパティ - >接続 - >メタデータ・アーティファクト処理 - >次にに変更し、出力ディレクトリにコピーして再構築します。

これは、自分が見つけようとしているリソースにメタデータ接続文字列のパスポイントを変更します。

0

私の場合、プロジェクトで自分のEDMXファイルを削除し、新しい名前で再度作成します。それがHome_Modelの前に、それは後でHome_Costです。 以下のコードを呼び出そうとすると、「指定されたメタデータリソースを読み込めません。エラー。 //// /////

using (var currentEntities = new masterEntities()) 
    { 
     currentUser = currentEntities.Home_User.FirstOrDefault(
      x => x.UserLoginAccount == userLoginAccount && x.UserPwd == userPwd); 

    } 

ので、Web.configファイルで、私はHome_ModelからHome_Costに メタデータ的な設定を変更します。

それが動作します。 明らかに、edmxを削除/作成するとVS2015(私のバージョン)はweb.configを更新しませんでした。

0

Visual Studioでの再構築ソリューションが助けになりました。

ビルド - >リビルド

関連する問題