【发布时间】:2014-12-10 19:16:41
【问题描述】:
我们有一个同步框架,它使用全局 SyncEntity 表来跟踪哪些实体在什么时间被更新,这意味着我们有一个具有如下结构的全局表:
<dbo.SyncEntity>
ID int
EntityType int
EntityGuid uniqueidentifier
EntityType 是对应于特定实体的枚举,以便我们知道在哪个表中查找该实体。 我们所有的表都有一个 ID (PK) 和一个 GUID。
我已经从不同的 Entity 表和 SyncEntity 表中的 EntityGuid 创建了一个外键约束。
这非常适合现有数据,但是当我们使用 EntityFramework 插入新数据时,它不会以“正确”顺序插入数据,从而导致错误,因为尚未插入具有所需 EntityGuid 的 SyncEntity。
我想我们可以在所有实体上添加属性 SyncEntity,但我真的不想用该属性污染我们的域模型。
所以我的问题是,无论如何要确保将特定的实体类型作为第一个实体插入? 或者无论如何都可以在没有导航属性的情况下将 Guid(在特定实体上)的关系映射到 EntityGuid(在 SyncEntity 上)。
【问题讨论】:
-
我知道实体框架可以设置为使用 SP 进行插入。这是一个可以接受的选择吗?
标签: c# sql-server entity-framework