Как добавить зависимость (обеспечить порядок вставки) без внешнего ключа - PullRequest
1 голос
/ 18 июня 2019

Примечание: это не реальный сценарий, поэтому не переоценивайте, почему люди получают электронные письма от триггера или почему мы это делаем, меня больше интересует, как

У меня есть следующие три таблицы

Classroom
ClassroomTime
ClassroomPerson

enter image description here

У нас есть триггер на ClassroomPerson, когда при добавлении человека он автоматически отправляет им электронное письмо с указанием времени для занятий.

При настройке классной комнаты в EF корректно сначала создается классная комната, но нет никакого явного порядка, если следующим будет создано ClassroomTime или ClassroomPerson. Бывает, что ClassroomPerson создается первым, поэтому триггер не работает, потому что ClassroomTime еще не успел.

Есть ли способ принудительно создать EF в следующем порядке:

1) Classroom
2) ClassroomTime
3) ClassroomPerson

при предоставлении всех данных.

Один хак, о котором мы подумали, заключался в том, чтобы ClassroomPerson's ClassroomId был от FK до ClassroomTime, а не Classroom.

Более прямолинейным решением было бы заставить EF принудительно запускать поведение триггера, выполняя само поведение, а не полагаться на триггер, но тогда вещи вне EF должны иметь контекст этого поведения

...