Entity Framework 6 Первый триггер кода
Я использую Entity Framework 6 Code First и хотел бы создать триггер.
Как это сделать?
Причина, по которой мне нужен триггер, заключается в том, что пользователь может либо редактировать базу данных напрямую, либо через программу, которую я пишу, и мне нужно убедиться, что два столбца в таблице не равны нулю, и не оба не являются нулевыми.
Я искал и не могу найти способ.
Можно ли сначала указать триггер с использованием кода?
Ответы
Ответ 1
Entity Framework не поддерживает триггеры, хотя вы можете вручную выполнить инструкцию, которая создаст триггер, но вам нужно будет сделать это после создания таблицы (при использовании миграции).
Вы можете использовать технику, указанную в Ladislav в EF 4.1, сначала добавив триггер в таблицу
Обратите внимание на его предупреждение, однако EF не будет знать никаких изменений, внесенных в триггер. Если ваше намерение состоит в том, чтобы убедиться, что 2 столбца в таблице не являются нулевыми, вам лучше будет работать с ограничением (ограничения также не поддерживаются EF, но вы можете добавить их вручную).
Ответ 2
Посмотрите мою библиотеку EntityFramework.Triggers. Он работает на уровне структуры Entity Framework, поэтому события триггера не срабатывают, если кто-то напрямую модифицирует базу данных. Ссылка NuGet https://www.nuget.org/packages/EntityFramework.Triggers/
Ответ 3
После добавления миграции откройте файл миграции и создайте триггер, как показано ниже
Примечание: вам нужно запустить update-database, чтобы увидеть изменения в вашей базе данных.
![enter image description here]()