我有几个带有组合键{Id + OrgId}的表。 Id由应用程序的用户提供,OrgId由系统处理。我想为这些表的所有实例设置OrgId,而不必转到每个存储库,然后在附加之前手动设置OrgId。
我该怎么做?
如果OrgId不是主键的一部分,则在调用基本实现之前,我重写SaveChanges()以更新所有具有OrgId的被跟踪实体。当OrgId是主键的一部分时,此方法不起作用,因为一旦跟踪实体,我们就无法更新它的主键。
答案 0 :(得分:1)
因此,在SaveChanges()
覆盖中,我将entry.Entity.OrgId
,entry.OriginalValues["OrgId"]
和entry.CurrentValues["OrgId"]
设置为相同的值。我不再例外。另外,在此阶段,我确保将OrgId标记为.ValueGeneratedNever()
。
尽管如此,我还是建议您看一下@IvanStoev的解决方案。