gpt4 book ai didi

entity-framework - EF4 - 强制执行顺序

转载 作者:行者123 更新时间:2023-12-03 23:38:58 24 4
gpt4 key购买 nike

我有三个表 - 上下文、 session 和用户。以下是它们的简化结构。

用户:
UserId (Int, PK)
电子邮件 (Varchar(100))

上下文:
ContextId (Int, PK)
UserId(Int,FK 来自 User 表)
CurrentSessionId(Int,Nullable,来自 Session 表的 FK)

session :
SessionId (Int, PK)
UserId(Int,FK 来自 User 表)
ContextId(Int,来自上下文表的 FK)

下面是我的代码中删除用户实体的序列。

1) 将Context表的CurrentSessionId更新为null,其中UserId = UserId要删除。
2)删除User对应的所有Session
3)删除User对应的所有Context
4) 最后删除用户。
5) 调用 ObjectContext.SaveChanges()

调用 ObjectContext.SaveChanges() 时出现以下异常 -

无法确定相关操作的有效顺序。由于外键约束、模型要求或存储生成的值,可能存在依赖关系。

我猜 EF4 在确定前 3 个语句的执行顺序时感到困惑。 是否可以告诉 EF4 先执行什么语句,然后执行什么语句?

我可以解决的一种方法是在第一步之后调用 SaveChanges(),然后在第四步之后再次调用它。但我很想知道是否还有其他优雅的解决方案。

最佳答案

基于 this MSDN link在 EF4 中不能强制执行顺序。我不得不在第一步之后调用 SaveChanges() 两次,然后在第四步之后再次调用。

关于entity-framework - EF4 - 强制执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com