Я боролся с этим некоторое время. Я пытаюсь реализовать ассоциацию много-к-одному. У меня есть куча строк в таблице, называемых чтениями. Они накапливаются со временем, и время от времени я хочу экспортировать их. Когда я экспортирую их, я хочу создать новый объект с именем ExportEvent, чтобы отслеживать, какие строки были экспортированы, чтобы их можно было повторно экспортировать в случае необходимости. Следовательно, чтение имеет отношение внешнего ключа к NULL, поскольку я создаю показания перед тем, как экспортировать их.
Что я обнаружил, так это то, что когда я затем выполняю экспорт, я сначала создаю ExportEvent (evt) и добавляю показания, используя
evt.Readings.AddRange(),
или если я использую
foreach(reading)
reading.ExportEvent = evt
Когда я вызываю SubmitChanges, я всегда получаю новую группу показаний, созданных с помощью ассоциации evt, и исходные записи не обновляются.
Я сократил это до самого простого, просто чтобы посмотреть, смогу ли я создать два объекта без ассоциации, и я даже обнаружил, что когда я просто извлекал все показания и обновлял для них значение int, submitchanges все еще вставлял связку новых записей. Что происходит?