J'ai d'abord utilisé la base de données EntityFramework Core pour créer un modèle comme illustré dans la documentation d'EF Core
Mais je ne sais pas comment mettre à jour le modèle lorsque la base de données a été modifiée.
Vous pouvez ré-échafauder le modèle en exécutant la commande que vous avez exécutée à l’origine avec la commande -Force
option ajoutée. Cela entraînera le remplacement du contenu du dossier spécifié. Utilisation de la console du gestionnaire de packages exemple tiré de la documentation EF Core , la commande modifiée devient:
Scaffold-DbContext "Server=(localdb)\v11.0;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
Alternativement, si vous utilisez commandes CLI , cela devient:
dotnet ef dbcontext scaffold "Server=(localdb)\v11.0;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -f
Cependant, vous devriez envisager d'utiliser Migrations pour que votre modèle et votre schéma de base de données soient synchronisés l'un avec l'autre. De cette façon, vous apportez des modifications au modèle, puis vous les propagerez dans la base de données.
Si vous souhaitez mettre à jour les modèles de temps en temps, voici un moyen pratique de simplifier le processus.
Rendez-vous au menu Outils> Outils externes, puis Ajoutez un nouveau menu et remplissez les entrées suivantes:
Titre:
Update DbContext
Commande:
dotnet.exe
Arguments:
ef dbcontext scaffold "your-connection-string" Microsoft.EntityFrameworkCore.SqlServer --output-dir=Models --force
répertoire initial:
$(ProjectDir)
Cochez ensuite éventuellement "Utiliser la fenêtre de sortie", puis appuyez sur Appliquer et OK .
Lorsque vous revenez à Outils, ce nouveau menu devrait être présent et prêt à être réutilisé, en un seul clic!
Vous devez effectuer une migration NE PAS ré-affranchir, sinon vous perdrez tout travail effectué sur les modèles, telles que la validation des données.
Si nous avons personnaliser dans dbcontext
classe E.g. ajouter LoggerFactory
et après nous utilisons ('Scaffold-DbContext "Server=(localdb)\v11.0;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force')
. cette commande alors toutes les modifications de personnalisation seront perdues.