J'utilise Entity Framework 6 Code First, et je voudrais créer un déclencheur.
Comment puis-je faire cela?
La raison pour laquelle j'ai besoin du déclencheur est qu'un utilisateur peut modifier la base de données directement ou via un programme que j'écris, et je dois m'assurer que 2 colonnes dans une table ne sont pas toutes les deux nulles et ne sont pas toutes les deux non nulles.
J'ai cherché et je ne trouve pas de moyen.
Existe-t-il un moyen de spécifier un déclencheur en utilisant d'abord du code?
Entity Framework ne prend pas en charge les déclencheurs, bien que vous puissiez certainement exécuter manuellement une instruction qui créerait un déclencheur, mais vous devrez le faire après la création de la table (si vous utilisez des migrations).
Vous pouvez utiliser la technique spécifiée par Ladislav dans code EF 4.1 ajoutant d'abord un déclencheur à une table
Prenez note de son avertissement, cependant, EF ne sera au courant d'aucune modification apportée au déclencheur. Si votre intention est simplement de vous assurer que 2 colonnes dans une table ne sont pas nulles, vous seriez mieux servi avec une contrainte (les contraintes ne sont pas non plus prises en charge par EF, mais vous pouvez les ajouter manuellement).
Consultez ma bibliothèque EntityFramework.Triggers . Il fonctionne sur la couche Entity Framework, de sorte que les événements de déclenchement ne se déclenchent pas si quelqu'un modifie directement la base de données. Le lien NuGet est https://www.nuget.org/packages/EntityFramework.Triggers/