C#/ Visual Studio 2012 RC /.NET4.0用のEntityFramework5.0.0 RC / EF 5.x DbContext Generatorを使用して、プロジェクトで自動移行を有効にしようとしています。enable-migrations
パッケージマネージャーコンソールで実行しました:
PM> enable-migrations
No classes deriving from DbContext found in the current project.
Edit the generated Configuration class to specify the context to enable migrations for.
Code First Migrations enabled for project Test.
ご覧のとおり、DbContextから派生した型は自動的に検出されませんでしたが、生成されたコードファイルにこの型の名前を入力することで、これを簡単に解決できましたMigrations/Configuration.cs
。
ただし、次のステップであるPackage Manager Consoleコマンドenable-migrations
は、前のステップで追加された移行構成タイプが見つからないために失敗します。
PM> add-migration Initial
No migrations configuration type was found in the assembly 'Test'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration).
どうすればこれを解決できますか?
編集:パラメーターを使用して構成タイプの名前を指定できることがわかりました-ConfigurationTypeName
:
PM> add-migration -ConfigurationTypeName Test.Migrations.Configuration Initial
The type 'Configuration' is not a migrations configuration type.
これはまだ機能しませんが、少なくともベイルの理由を明らかにします。つまり、移行構成タイプではないadd-migration
と考えます。Test.Migrations.Configuration
enable-によって生成されたものであるため、受け入れられない理由について誰かが手がかりを持っていますmigrations
か?以下の生成されたコードを参照してください(UserModelContainerはDbContextから派生しています)。
namespace Test.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
using Test.Models;
internal sealed class Configuration : DbMigrationsConfiguration<UserModelContainer>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(UserModelContainer context)
{
// This method will be called after migrating to the latest version.
// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data. E.g.
//
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" },
// new Person { FullName = "Brice Lambson" },
// new Person { FullName = "Rowan Miller" }
// );
//
}
}
}