Я некоторое время боролся со следующей проблемой с использованием EF4 и поставщика SQLite ADO.NET:
У меня есть модель с иерархией TPT: есть абстрактная базовая сущность (Источник),затем дочерние сущности первого уровня (SingleSource и MultipleSource) и дочерние сущности 2-го уровня (например, FileSource в SingleSource).
В моем приложении я создаю объекты FileSource и добавляю их в свой контекст.Пока я вызываю context.SaveChanges () после каждой операции добавления нового FileSource, все работает нормально, но когда я добавляю несколько FileSources в свой контекст и затем вызываю SaveChanges один раз, чтобы сохранить их все, я получаю исключение обновления:
Невозможно определить основной конец отношения FK_Source_SingleSource_0.Несколько добавленных сущностей могут иметь один и тот же первичный ключ
Я заметил, что когда я создаю новые объекты FileSource, EF устанавливает их Id в 0 для всех из них, даже если это поле идентификации (StoreGeneratedPattern = Identityкак на SSDL, так и на CSDL), и я подозреваю, что это является причиной его отказа, но я пока не смог найти никакого решения, поэтому любая помощь будет принята с благодарностью.
Спасибо,
Симон