Entity Framework 5.0 RC -Команда диспетчера пакетов «добавить -миграцию» завершается сбоем из-за предположительно отсутствующего типа конфигурации

Используя Entity Framework 5.0.0 RC/EF 5.x DbContext Generator для C #/Visual Studio 2012 RC/.NET 4.0, я пытаюсь включить автоматическую миграцию в своем проекте. Я запустил 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.

Однако следующий шаг, команда 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" }
            //    );
            //
        }
    }
}
5
задан aknuds1 8 August 2012 в 09:51
поделиться