Вставить запись в дочернюю таблицу, если родительская запись уже существует, используя сначала код Entity Framework

У меня есть родительские записи, уже вставленные в базу данных. Теперь я хочу добавить несколько дочерних записей. Для этого я выполнил следующие шаги:

  1. Получить родительские (A) записи
  2. Создать новую дочернюю (B) запись
  3. Добавить родительскую запись в свойство Navigation для Child. BA = A
  4. Вызов SaveChanges.

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

Обратите внимание, что я использую сгенерированный базой данных идентификатор для Родителя и Дочернего. Я заметил одну вещь: если я добавляю / сохраняю родительский и дочерний элемент из одного и того же объекта контекста, он работает нормально.

Необходимо исправить это как можно скорее. Мы будем благодарны за любую помощь.

7
задан Ladislav Mrnka 2 August 2011 в 14:36
поделиться