私は、複数のプロジェクトの共通データアクセスレイヤーを担当するエンティティフレームワークオブジェクトを含むクラスライブラリプロジェクトを作成しました。生成されたDLLファイルをドメインプロジェクトに追加し、クラスライブラリプロジェクトのエンティティオブジェクトを使用した後、次の問題。
「ABC」という名前の接続文字列がアプリケーション構成ファイルで見つかりませんでした。
edmxのMetadata Artifact処理プロパティをEmbed in Output Assemblyに設定しました
App.Configマークアップ
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="ABC" connectionString="metadata=res://*/Entity.ABC.csdl|res://*/Entity.ABC.ssdl|res://*/Entity.ABC.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\ABC.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
</configuration>
エンティティコードは次のとおりです
public ABC_IntegrationEntities()
: base("name=ABC")
{
}
datadirectiory "App_Data"からデータベースにアクセスしているもう1つのこと
dotnetcurry.comのブログを参照しています。
http://www.dotnetcurry.com/showarticle.aspx?ID=617
前もって感謝します!
リンク に基づいて、おそらくこの部分を逃します。
これで、このプロジェクトで独自の.configファイルを作成して、モデルの接続文字列エントリを追加するか、または単にのいずれかを行うことができますMyEntityModelプロジェクトのConsole Appプロジェクトに作成したApp.configファイルをコピーします。より簡単な方法を採用します。プロジェクトを右クリック>既存のアイテムを追加> MyEntityModelプロジェクトに移動し、App.configファイルを追加します。
説明:
ライブラリを作成し、そのライブラリが別のプロジェクトから参照されている場合、EFはプロジェクトの起動に関連する構成を読み取ります。次のいずれかを実行できます。
私はすべてのEF(Entity Framework)機能を実装するクラスライブラリの作成に取り組んでおり、 http://www.dotnetcurry.com/showarticle.aspx?ID=617 で説明されているプロセスに従いましたが、それでもエラーを出していた。
問題は、EFフレームワークと.Netフレームワーク間のバージョンの不一致でした。 .Net Framework 5.0を使用していましたが、EFのバージョンは6.0でした。 .Netフレームワークの最新バージョンを更新した後、すべてが正常に動作し始めました。 EFおよびDLLバージョン+ EFおよびテストプロジェクトのバージョンが常に同じであることを常に確認してください。
EFTools6.1.3ForVS2013もダウンロードしてインストールしました。他に覚えておくべきことは、EF Dllを参照するすべてのプロジェクトにNugetからEntity Frameworkをインストールし、テストプロジェクトの構成ファイルのDll構成ファイルから接続文字列をコピーする必要があることです。
これが誰かを助けることを願っています!!!おかげで、
ライブラリプロジェクトの構成ファイルからSQL接続文字列をコピーし、スタートアッププロジェクトであるメインプロジェクトの構成ファイルに貼り付けます。これで問題が解決します。
また、DbProviderFactoriesをライブラリプロジェクトからメインプロジェクトの構成ファイルにコピーします。
コンテキストクラスのコンストラクターで使用しているエンティティ接続文字列の名前を変更します。
public ABC_IntegrationEntities()
: base("name=Gumu_IntegrationEntities")
{
}
アプリケーション構成ファイルがコードを実行するアセンブリに追加されていることを確認してください。つまり、app.config
のPEのweb.config
のウェブサイト