エンティティ フレームワーク テスト用のデータベースを作成しようとしていますが、構成ファイルを正しく読み取ることができません。テスト プロジェクトの私のapp.config
ファイルは次のようになります。
<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="TestConnection"
connectionString= "Data Source=(LocalDb)\v11.0;
Initial Catalog=LocabalTestDB;
Integrated Security=SSPI;
MultipleActiveResultSets=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
....
</configuration>
ただし、 というデータベースを作成するのではなく、 というデータベースをLocabalTestDB
作成していますLocabal.Model.LocabalSqlContext
。接続文字列は次のようになります。
"データ ソース=(localdb)\v11.0;初期カタログ=Local.Model.LocalSqlContext;統合セキュリティ=True;MultipleActiveResultSets=True;アプリケーション名=EntityFrameworkMUE"
DB 作成/シード コードは次のようになります (テストを実行する前に 1 回実行されます)。
[AssemblyInitialize]
public static void Init(TestContext c)
{
Database.SetInitializer<LocabalSqlContext>(null);
using (var db = new LocabalSqlContext())
{
if (!db.Database.Exists())
{
db.Database.Create();
Locabal.Model.Migrations.Configuration.SeedData(db);
}
}
}