Entity Framework - Вставка в несколько таблиц с использованием внешнего ключа - PullRequest
6 голосов
/ 14 декабря 2010

Я относительный новичок в EF и создал простую модель (см. Ниже), используя EF4.alt text

У меня проблема с вставкой новой записи в сущность UserRecord и последующим добавлением сущности UserDetail, которая использует вновь созданный UserRecordId в качестве своего первичного ключа.Код, показанный ниже, работал, когда в моей базе данных было отношение «один ко многим», но когда я изменяю это отношение «один к одному», я получаю сообщение об ошибке, выделенной на рисунке ниже.alt text

Я считаю, что это не работает, так как в настоящее время нет никакого свойства UserDetails, связанного с UserRecord, потому что это теперь отношение один к одному.Мой вопрос: как мне теперь вставить новую UserRecord и соответствующие сущности UserDetail с отношением один-к-одному?

Любая помощь в этом вопросе очень ценится, так как она была при поиске в Интернете и пробуете различныевещи без успеха.

Приветствия

Cragly

1 Ответ

17 голосов
/ 14 декабря 2010

Ваш объект UserDetail должен иметь свойство, которое ссылается на объект UserRecord. (Возможно, он называется User? Если я правильно читаю раздел навигации ниже.) Если вы установите это свойство для своего нового незафиксированного объекта UserRecord, оно автоматически заполнит ключ, когда подтвердит оба объекта.

UserRecord userRecord = new UserRecord();
// whatever

UserDetail userDetail = new UserDetail();
userDetail.User = userRecord; // This will auto-fill the FK during commit.
// whatever

// Add both userRecord and userDetail to the context and commit.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...