Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 37510|Répondre: 1

[Source] Stratégie d’initialisation de base de données dans EF 6 Code-First

[Copié le lien]
Publié sur 17/04/2019 15:56:46 | | |
Vous avez déjà créé une base de données après avoir lancé l’application Code-First pour la première fois, mais qu’est-ce que cela signifie après avoir lancé la deuxième fois ? Une nouvelle base de données est-elle créée à chaque exécution de l’application ? Qu’en est-il de l’environnement de production ? Comment puis-je modifier la base de données lorsque je change le modèle de domaine ? Pour gérer ces scénarios, vous devez utiliser l’une des politiques d’initialisation de la base de données.

Il existe quatre stratégies différentes d’initialisation de base de données :

  • CreateDatabaseIfNotExists:C’estfaire défautprocédure d’initialisation. Comme son nom l’indique, il créera une base de données si elle n’existe pas selon la configuration. Cependant, si vous changez la classe modèle puis exécutez l’application avec cet initialiseur, une exception est lancée.
  • DropCreateDatabaseIfModelChanges: Si votre classe de modèle (classe d’entité) a changé, cet initialiseur supprimera la base de données existante et en crée une nouvelle. Vous n’avez donc pas à vous soucier de la maintenance des schémas de base de données lorsque les classes de modèles changent.
  • DropCreateDatabaseAlways: Comme son nom l’indique, cet initialiseur supprime la base de données existante à chaque exécution de votre application, que votre classe de modèle ait changé ou non. C’est utile lorsque vous avez besoin d’une nouvelle base de données à chaque exécution d’une application, par exemple lors du développement d’une application.
  • Initialiseur de base de données personnalisé: Vous pouvez également créer votre propre initialiseur personnalisé si ce qui précède ne répond pas à vos besoins, ou si vous souhaitez utiliser l’initialiseur ci-dessus pour effectuer le processus d’initialisation d’autres bases de données.

Pour utiliser l’une des stratégies d’initialisation de la base de données ci-dessus, vous devez définir l’initialiseur de la base de données en utilisant la classe de contexte de la base de données, comme montré ci-dessous :




Vous pouvez également créer un initialiseur de base de données personnalisé en héritant de l’un des initialiseurs, comme montré ci-dessous :




Dans l’exemple ci-dessus, le SchoolDBInitializer est une classe d’initialisation personnalisée dérivée de CreateDatabaseIfNotExists. Cela sépare le code d’initialisation de la base de données de la classe contextuelle.

Configurez l’initialiseur de base de données dans le fichier de configuration

Vous pouvez aussi définir l’initialiseur de base de données dans le fichier de configuration. Par exemple, pour définir le paramètre initial par défaut dans app.config :




Vous pouvez configurer un initialiseur de base de données personnalisé comme suit :




Fermer l’initialiseur de la base de données

Vous pouvez désactiver l’initialiseur de base de données pour votre application.En supposant que vous ne souhaitiez pas perdre les données existantes en production, vous pouvez fermer l’initialiseur, comme suit :



Vous pouvez aussi désactiver l’initialiseur dans le fichier de configuration, par exemple :








Précédent:Cryptographie illustrée 3e édition
Prochain:Vidéo de la classe d’emploi d’avril 2018 dans la Silicon Valley
 Propriétaire| Publié sur 07/02/2021 15:08:59 |
Autoriser le début du Entity Framework ne plus valable __MigrationHistory table
https://www.itsvse.com/thread-3255-1-1.html

Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com