c# - type - update database code first migrations




Peut-on exécuter un script SQL en utilisant les premières migrations de code? (2)

Peut-on exécuter un script SQL en utilisant les premières migrations de code?

Je suis nouveau au code en premier et si je veux enregistrer mes modifications dans un fichier de script SQL avant la commande de migration de base de données de mise à jour, est-ce possible?

Si possible, veuillez indiquer les étapes à suivre pour le faire. Aussi, si le script est généré, est-il possible que je puisse exécuter ce script en utilisant la migration?


Ce que j'aime faire, c'est intégrer le script SQL en tant que ressource dans l'assembly et utiliser la méthode SqlResource . J'ai testé cette approche avec Visual Studio 2017 15.5.6.

Vous devez d'abord créer un fichier de migration:

  1. Dans Visual Studio, assurez-vous de définir comme projet de démarrage le projet dans lequel votre DbContext est défini.
  2. Dans Visual Studio, ouvrez le PMC: Affichage -> Autres fenêtres -> Console du gestionnaire de packages
  3. Dans PMC Définissez le projet par défaut sur le projet contenant DbContext
  4. Si vous avez à la fois EF core et EF 6.x installé:

    EntityFramework\Add-Migration RunSqlScript

  5. Si vous avez seulement EF 6.x installé:

    Add-Migration RunSqlScript

Ajouter un script SQL dans le dossier de migration (je le nomme avec le même préfixe que le fichier de migration)

Dans la fenêtre Propriétés du fichier, assurez-vous que l'action de génération est "Ressource intégrée". Notez que nous n'avons pas besoin de copier dans le dossier de sortie car le script SQL sera incorporé dans l'assembly.

Mettre à jour la méthode Up dans la migration RunSqlScript

public override void Up()
{
    string sqlResName = typeof(RunSqlScript).Namespace  + ".201801310940543_RunSqlScript.sql";
    this.SqlResource(sqlResName );
}

J'espère que ça aide


Comme SQL, nous avons une autre méthode SqlFile. vous pouvez directement l'utiliser.





asp.net-mvc-4