web-dev-qa-db-ja.com

Entity Framework 6エラー指定されたメタデータリソースをロードできません

私のソリューションではEntity Framework 6と「モデルファースト」を使用しています。「データモデル」クラスを別のプロジェクトに分離したので、「データモデルコンテキスト」を公開せずに「データモデル」クラスへの参照を追加できます。接続。 Entity Data Modelプロジェクト(特にDBコンテキストなど)をUIレイヤーに公開したくありません。私はこれを持っています:

enter image description here

これで、自動生成されたエンティティークラスをデータモデルから正常に分離できました。エンティティーにエンティティーまたはプロパティを追加することにより、これが機能するか試しました。プロジェクトMapeo.BusinessEntityで更新されます。

これは、DatabaseLayer(Mapeo.DatabaseModel)からの接続文字列です。

<connectionStrings>
   <add name="MapeoModelContainer" connectionString="metadata=res://*/MapeoModel.csdl|res://*/MapeoModel.ssdl|res://*/MapeoModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=*****;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

サービスレイヤーで、この接続文字列をApp.configにコピーしました。データを追加するときに問題が発生しました。次のメッセージが表示されます。指定されたメタデータリソースを読み込めません解決方法この問題?

enter image description here

更新済み解決策を見つけ、App.Configで接続文字列を変更しました。私の場合、DataModelのディレクトリ(Mapeo.DatabaseModel)の接続文字列 "*"で置き換えたプレテンテーションレイヤーをこれに置き換えました。レイヤープレゼンテーションの接続文字列:

  <connectionStrings>
     <add name="MapeoModelContainer" connectionString="metadata=res://Mapeo.DatabaseModel/MapeoModel.csdl|res://Mapeo.DatabaseModel/MapeoModel.ssdl|res://Mapeo.DatabaseModel/MapeoModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=scugua;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
17
raranibar

メタデータファイルをロードするなどの問題がある場合は、正しいパスでconnectionStringを更新してください。それが誰かを助けるかもしれません...

connectionString="metadata=res://DatabaseModel/MyModel...
3
Francois

エンティティを作成した後、データベースを編集すると、エンティティが機能しない

エンティティが更新される限り

この方法では:

enter image description here

この方法が機能しなかった場合

それを行うことをお勧めします:

  1. このタグを削除:<add name="MapeoModelContainer" ...
  2. 削除MapeoModel.edmx
  3. 追加ADO.NETエンティティデータモデル

次に、ウィザードを使用して接続とエンティティを作成します

このメソッドが機能しない場合は、Inner exceptionを送信します。

0
M.R.T2017