Getting 'Contexte n'est pas constructible. Ajoutez un constructeur par défaut ou fournissez une implémentation de IDbContextFactory. "

J'obtiens cette erreur quand j'essaie d'utiliser le premier code migrations.

Mon contexte a un constructeur avec le nom de la connexion.

public class VeraContext : DbContext, IDbContext
{
    public VeraContext(string NameOrConnectionStringName = "VeraDB")
        : base(NameOrConnectionStringName)
    {
    }

    public IDbSet<User> Users { get; set; }
    public IDbSet<Product> Products { get; set; }
    public IDbSet<IntCat> IntCats { get; set; }
}

Ce nom de connexion est injecté avec ninject lorsque le projet fonctionne, j'ai aussi spécifié en tant que par défaut, comme dans le code ci-dessus mais cela n'a pas aider.

kernel.Bind<IDbContext>()
    .To<VeraContext>()
    .WithConstructorArgument("NameOrConnectionStringName", "VeraDB");

Lorsque j'essaie d'ajouter des migrations avec "Activer les Migrations" est jette l'erreur:

La cible contexte " VeraData.EF.L'Infrastructure.VeraContext " n'est pas
constructible. Ajouter un constructeur par défaut ou de fournir une implémentation
de IDbContextFactory.

Si je supprime le constructeur de VeraContext que cela fonctionne, mais en crée une autre base de données avec VeraData.EF.Infrastructure.VeraContext comme son nom l'.

Je présume que ninject passe seulement la chaîne de connexion lors de l'exécution du projet et non pas lorsque j'utilise le premier code migrations. De toute façon je peux injecter/fournir une valeur par défaut pour le nom de la connexion lors de l'utilisation de code de la première migrations ?

source d'informationauteur LaserBeak