Entity Framework 5.0 RC - Gestionnaire de Paquet de la commande " ajoutez-la migration échoue en raison d'un soi-disant manque le type de configuration

À l'aide de Entity Framework 5.0.0 RC/EF 5.x DbContext Générateur pour C#/Visual Studio 2012 RC/.NET 4.0, je vais essayer d'activer les migrations automatiques dans mon projet. J'ai couru enable-migrations dans le Gestionnaire de paquets de la Console:

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.

Comme vous pouvez le voir, il n'a pas de détecter automatiquement mon DbContext type dérivé, mais j'ai résolu ce problème assez facilement en entrant le nom de ce type dans le fichier de code généré, Migrations/Configuration.cs.

Cependant, la prochaine étape, le Gestionnaire de paquets de commande de la Console enable-migrations échoue en raison de ne pas trouver les migrations type de configuration ajouté par l'étape précédente.

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).

Comment puis-je résoudre ce problème?

EDIT: j'ai trouvé que je pouvais préciser le nom de la configuration type avec le paramètre -ConfigurationTypeName:

PM> add-migration -ConfigurationTypeName Test.Migrations.Configuration Initial
The type 'Configuration' is not a migrations configuration type.

Cela ne fonctionne toujours pas, mais au moins, il permet de comprendre pourquoi add-migration bails, c'est à dire qu'il pense que Test.Migrations.Configuration n'est pas un des migrations type de configuration. Quelqu'un aurait-il une idée de pourquoi il n'est pas accepté, étant donné qu'il a été généré par enable-migrations? Voir le code généré ci-dessous pour référence (UserModelContainer dérive de 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" }
            //   );
            //
        }
    }
}
Avez-vous plusieurs projets dans votre solution? Btw. vous avez mentionné que vous utilisez DbContext Générateur - migrations ne sont que pour le premier code.
Ah, c'est probablement ça, je suis en train de faire le premier modèle venu de penser à elle. Je ne sais pas Entity Framework, et j'ai toujours conçu le modèle visuellement d'abord. Je vais regarder dans le code de la première approche, et voir si je dois changer de. Je ne comprends pas très bien la différence que cela fait si le code est généré à partir d'un modèle.
Je ne sais pas si cette limitation n'était pas retiré de 5.0 RC, mais les précédentes versions jeté d'erreur lorsque vous essayez de migrer modèle qui n'a pas été créée avec le premier code. De toute façon que l'erreur doit être jeté plus tard - votre problème est probablement pas lié à que.
Ouais, l'incertitude quant à la cause réelle de l'erreur est vraiment frustrant 🙁 Btw, la solution est un seul projet.
J'ai essayé le code-première approche, la définition du modèle de base de données et le contexte des classes de moi-même, et j'ai exactement la même erreur 🙁

OriginalL'auteur aknuds1 | 2012-08-07