Q: Как обновить несколько таблиц в одном операторе - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть структура таблиц, в которой мне нужно обновить две таблицы за один раз, чтобы избежать нарушений ограничений внешнего ключа.

В сыром SQL это выглядит примерно так:

UPDATE Feature, Fact
    SET Feature.FeatureLicense= 17,
        Feature.BundleLicense = 5
        Fact.BundleLicense= 5
    WHERE
        Feature.FactID=50
        AND Fact.ID=50;

(например, https://stackoverflow.com/a/9417254/1105889)). Идея состоит в том, чтобы перенести факт, включая его функции, в другую лицензию комплекта, где лицензия комплекта объединяет несколько лицензий компонента. База данных ограничена, так что функция может быть лицензирована только в том случае, если комплектбыл лицензирован тоже.

В MySQL я не могу разделить это на два оператора, разделяющих транзакцию, потому что в MySQL ограничения внешнего ключа оцениваются сразу, а не только при фиксации.

Есть ли способзаставить EF (или Entity Framework Plus) генерировать такой оператор обновления?

...