У нас есть структура синхронизации, которая использует глобальную таблицу SyncEntity, чтобы отслеживать, какие объекты были обновлены в какое время, то есть у нас есть глобальная таблица со структурой, которая выглядит примерно так:Entity Framework, широкая база данных Таблица руководства, порядок вставки
<dbo.SyncEntity>
ID int
EntityType int
EntityGuid uniqueidentifier
The EntityType является перечисление, который соответствует конкретной организации, так что мы знаем, в какой таблице искать для этого объекта. Все наши таблицы имеют идентификатор (PK) и идентификатор GUID.
Я создал ограничение внешнего ключа из разных таблиц Entity и EntityGuid в таблице SyncEntity.
Это прекрасно подходит для существующих данных, однако, когда мы используем EntityFramework для вставки новых данных, он не вставляет данные в «правильный» порядок, что приводит к ошибке, поскольку SyncEntity с требуемым EntityGuid еще не вставлен.
Я думаю, мы могли бы добавить свойство SyncEntity на всех наших объектах, однако я действительно не хочу загрязнять нашу модель домена этим свойством.
Итак, мой вопрос, есть ли в любом случае, чтобы определенные типы Entity были вставлены в качестве первых объектов? Или все равно отобразить отношение от Guid (по конкретному объекту) к EntityGuid (по SyncEntity) без свойства навигации.
Я знаю, что Entity Framework можно настроить для использования SP для вставки. Будет ли это приемлемым вариантом? –