Первоначальная проблема, которую я пытался решить, была связана с этим сообщением об ошибке.Это происходит в проекте Web API 2, работающем в Azure.
Ошибка 1
Введение ограничения FOREIGN KEY 'FK_dbo.Merchant_MerchantId' для таблицы 'Keys'может вызвать циклы или несколько каскадных путей.Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION или измените другие ограничения FOREIGN KEY.
Сообщение об ошибке FOREGIN KEY появилось только после того, как я попытался загрузить сборку релиза моего API в свое приложение Azure.Обслуживание.Я недавно обновился до версии 15.9.11 Visual Studio 2017, но я понятия не имею, является ли это причиной проблемы FOREIGN KEY, которая привела к этой неразберихе.Этот API и база данных работали годами без каких-либо проблем.
Чтобы попытаться устранить проблему, я добавил следующую строку в метод OnModelCreating (DbModelBuilder modelBuilder).
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
Добавление вида линии исправило проблему, и ошибка 1 исчезла, но теперь API не находит записи, которые фактически находятся в базе данных.Я не уверен, почему это так.
С тех пор я закомментировал строку и загрузил новую сборку моей Службы приложений.Теперь я получаю это сообщение об ошибке.
Ошибка 2
Ошибка: модель, поддерживающая контекст «NameDbContext», изменилась с момента создания базы данных.
На этом этапе я создаю больше проблем, а не исправляю свою первоначальную проблему.
Любая помощь в восстановлении после этого беспорядка очень ценится!Спасибо!
ОБНОВЛЕНИЕ 1
Я работал с инженером Microsoft над ошибкой «Модель, поддерживающая контекст« NameDbContext », изменилась с момента создания базы данных».Я добавил следующее в Application_Start () в файле Global.asax.cs.Добавление этого не удаляло и не изменяло какие-либо мои данные в SQL.Сообщение об ошибке 2 исчезло.API все еще не возвращает записи, которые находятся в базе данных, поэтому у меня все еще есть проблема, которую нужно исправить.
Database.SetInitializer<FaceOffersDbContext>(null);
UPDATE 2
Я запускал свой API локальнобез проблем.Это означает, что проблема возникает только в Azure.Я работаю с Microsoft, чтобы сузить проблему и найти исправление.