Мне пришлось сделать что-то в этом духе в похожей ситуации:
Учитывая список ключей и значений, где некоторые ключи являются новыми, и желание обновить / вставить ключи и значения водин SaveChanges
, я сначала опускаю все существующие ключи, затем поддерживаю отдельную коллекцию keysIncludingNewOnes
, которая начинается только с существующих ключей, но также получает все вновь созданные ключи, добавленные вЭто.
Затем, когда я ищу ключевой объект для связи со значением, я смотрю keysIncludingNewOnes
, а не запрашиваю контекст, так как (как вы обнаружили) контекст не знает оновые ключи до SaveChanges
.
Вам должно быть относительно легко запомнить о ваших объектах «ожидающих дополнений»;в противном случае у вас может быть слишком долгоживущий контекст, который в целом создает свои собственные проблемы.