Après la mise à niveau vers ASP.NET Core 2.0, je ne parviens plus à créer des migrations.
Je reçois
"Une erreur s'est produite lors de l'appel de la méthode 'BuildWebHost' sur la classe Programme". Continuez sans le fournisseur de services d'application. Erreur : Une ou plusieurs erreurs se sont produites. (Impossible d'ouvrir la base de données "..." demandée par le l'ouverture de session. La connexion a échoué. La connexion a échoué pour l'utilisateur '...'".
y
"Impossible de créer un objet de type 'MyContext'. Ajoutez une implémentation de 'IDesignTimeDbContextFactory' au projet, ou voyez https://go.microsoft.com/fwlink/?linkid=851728 pour des motifs supplémentaires pris en charge au moment de la conception".
La commande que j'ai exécutée précédemment était $ dotnet ef migrations add InitialCreate --startup-project "..\Web"
(à partir du projet/dossier contenant le DBContext).
Chaîne de connexion : "Server=(localdb)\\mssqllocaldb;Database=database;Trusted_Connection=True;MultipleActiveResultSets=true"
Voici mon Program.cs
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
3 votes
Il est possible que le problème ne soit pas dans Program.cs. Il s'agit probablement de l'utilisation d'une instruction de chargement de données d'amorçage à la fin de votre méthode Configure : DbInitializer.Initialize(context) ; Si vous avez cette instruction, commentez-la : //DbInitializer.Initialize(context) ; Exécutez ensuite les instructions de migration pour les tester. Si le problème survient, suivez alors la classe DbInitializer.cs.
2 votes
Votre classe MyContext se trouve-t-elle dans un autre projet de bibliothèque de classes ?
0 votes
Même problème ici, le contexte est dans une autre bibliothèque. Si j'ajoute un consturcteur sans paramètre au contexte, les migrations fonctionnent, mais avec la même erreur : (Une erreur s'est produite lors de l'appel de la méthode 'BuildWebHost' sur la classe 'Program'. Continuer sans le fournisseur de service d'application. Erreur : Object reference not set to an instance of an object. )
0 votes
Avez-vous réussi à le résoudre à la fin ?
0 votes
@MiguelTorresC merci pour ce commentaire. J'ai commenté mes méthodes d'ensemencement et les migrations ont recommencé à fonctionner. Merci beaucoup ! !!
0 votes
Vérifiez dans Startup.cs s'il y a une ligne avec
service.DbContext<YourContext>
. Sinon, ajoutez et essayez de faire une migration.