У меня довольно простая ситуация.У меня есть 3
объекты:
- объект с именем
TrainingConsultant
, который еще не сохранен в базе данных - объект с именем
Training
, который недавно был сохранен в базе данных иэто EntityState
это Detatched
. - объект под названием «Консультант», который недавно был загружен из базы данных, и он
EntityState
равен Detatched
.
Мне нужно сохранить TrainingConsultant
объект со ссылками Consultant
и Training
, чтобы в базе данных были заполнены все обязательные поля и внешние ключи.
Проблемапока я не позвоню context.TrainingConsultants.AddObject(trainingConsultant);
все в отдельном состоянии.После этого и для тренинга, и для консультанта их EntityState изменили на Добавленный, поэтому context.SaveChanges()
пытается добавить и training
, и consultant
в базу данных перед добавлением traingingConsultant
.Сбой из-за того, что Consultant
уже существует в базе данных, так же, как и `консультант.
Как я могу это исправить, чтобы и Консультант, и Учебное пособие не были сохранены, но при этом на них ссылались?Имейте в виду, что я присваиваю эти 2 ссылочных объекта где-то еще в коде:
trainingConsultant.Training = training;
trainingConsultant.Consultant = consultant;
Поэтому, когда дело доходит до сохранения любых изменений, мне потребуется временно сохранить объекты, а затем установить null
на .Training
.Consultant
в TrainingConsultant
объекте?
using (var context = new Entity(Settings.sqlDataConnectionDetails)) {
context.TrainingConsultants.AddObject(trainingConsultant);
context.SaveChanges();
}