私のソリューションではEntity Framework 6と「モデルファースト」を使用しています。「データモデル」クラスを別のプロジェクトに分離したので、「データモデルコンテキスト」を公開せずに「データモデル」クラスへの参照を追加できます。接続。 Entity Data Modelプロジェクト(特にDBコンテキストなど)をUIレイヤーに公開したくありません。私はこれを持っています:
これで、自動生成されたエンティティークラスをデータモデルから正常に分離できました。エンティティーにエンティティーまたはプロパティを追加することにより、これが機能するか試しました。プロジェクト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="data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=*****;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
サービスレイヤーで、この接続文字列をApp.configにコピーしました。データを追加するときに問題が発生しました。次のメッセージが表示されます。指定されたメタデータリソースを読み込めません解決方法この問題?
更新済み解決策を見つけ、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="data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=scugua;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
メタデータファイルをロードするなどの問題がある場合は、正しいパスでconnectionStringを更新してください。それが誰かを助けるかもしれません...
connectionString="metadata=res://DatabaseModel/MyModel...