У меня есть сущность с двумя fk. Я пытаюсь вставить запись в базу данных без успеха. Это те подходы, которые я использовал:Еще раз проблемы Entity Framework и FK
valuePaymentBetToAdd.BetType = db.BetTypes.First(betType => betType.Id == valuePaymentBetToAdd.BetType.Id);
valuePaymentBetToAdd.Lottery = db.Lotteries.First(lotto => lotto.Id == valuePaymentBetToAdd.Lottery.Id);
В этом случае второй объект получает, но при вызове метода SaveChanges я получаю сообщение об ошибке, что свойства объекта лотереи были пустыми.
valuePaymentBetToAdd.BetTypeReference.EntityKey = new EntityKey(db.DefaultContainerName + ".BetType", "Id", valuePaymentBetToAdd.BetType.Id);
valuePaymentBetToAdd.LotteryReference.EntityKey = new EntityKey(db.DefaultContainerName + ".Lottery", "Id", valuePaymentBetToAdd.Lottery.Id);
В этом случае я получаю еще одну странную ошибку. Когда объект добавляется в коллекцию.
Объект не может быть добавлен или присоединен, поскольку его EntityReference имеет значение свойства EntityKey, которое не соответствует EntityKey для этого объекта.
Я что-то упустил в этом случае?
Пожалуйста, покажите полный код, который вы используете для вставки, а не только эти две строки. Оба метода, которые вы показываете, прекрасны. Ваша ошибка где-то в другом месте. Моя дикая догадка заключается в том, что вы используете несколько ObjectContexts, но это трудно сказать, не видя кода. –