В моем приложении две таблицы.Первый, разделы, хранит контент для определенного раздела онлайн-публикации.Он содержит (среди прочего) заголовок раздела и поле CurrentRevisionId (FK).
Во второй таблице, Revisions, хранятся различные ревизии этого содержимого.Он имеет поле PK RevisionId (вышеупомянутый FK, используемый для обозначения текущей ревизии), само содержимое HTML и SectionId (FK), указывающее, к какой секции принадлежит ревизия.ФК, указывая друг на друга.Когда я создаю новый раздел, дочерний объект CurrentRevision также заполняется этим содержимым.Но InsertOnSubmit завершается с ошибкой:
Оператор INSERT конфликтует с ограничением FOREIGN KEY "FK_Sections_Revisions".Конфликт произошел в базе данных «xxxx», таблице «xxxx.Sections», столбце «SectionID».Оператор был прерван.
Я предполагаю, что он не может одновременно создавать обе строки и заполнять их PK друг друга.
Если я сначала вставлю Раздел, затемРедакция (вместе с PK раздела), а затем обновить секцию с помощью Revision PK?Или есть лучшее / более элегантное решение для этого?
РЕДАКТИРОВАТЬ: Я приложил скриншот двух таблиц с их отношениями.Каждый раздел имеет много ревизий (FK SectionID внутри таблицы ревизий).Кроме того, существует взаимно-однозначное отношение, когда поле CurrentRevisionId в разделе указывает на ревизию, которая является «текущей».В этой «текущей» ревизии приложение извлекает HTML-код.Надеюсь, это немного прояснит ситуацию.