实体框架端的级联/客户端级联(未在数据库中定义)

Cascade / ClientCascade on Entity Framework Side (Not defined In Database)

提问人:Rahul Chawla 提问时间:10/27/2023 最后编辑:Rahul Chawla 更新时间:10/27/2023 访问量:33

问:

我无法对数据库进行更改,它被逆向工程为 ef 核心模型。我试图将 添加到 DbEntity 模型生成器中,但我仍然收到外键错误“DELETE 语句与 fk 引用冲突”。我的目标是自动删除其他表中的行,如果删除父表,则键被引用为 fk。.OnDelete(DeleteBehavior.ClientCascade)

我尝试执行的操作是否可行,或者是否必须在 SSMS 端定义级联约束?

直接修改 dbcontext 中子表的模型构建器,添加无法删除引用的字段。.OnDelete(DeleteBehavior.ClientCascade)

这是我的模型构建器示例。当我从会话中删除 sessionId 时,它应该删除 S 中的子实体

 modelBuilder.Entity<S>(entity =>
        {

            entity.HasOne(d => d.Session)
                .WithMany()
                .HasForeignKey(d => d.SessionId)
                .OnDelete(DeleteBehavior.ClientCascade)
                .HasConstraintName("FK_Session");
        });
.NET SQL-Server Entity-Framework Entity-Framework-Core

评论

0赞 AFract 10/27/2023
你读过 stackoverflow.com/a/48692824/461444 吗?
0赞 Rahul Chawla 10/27/2023
是的。我已经在我的帖子中更新了modelBuilder的代码。 @AFract
0赞 siggemannen 10/27/2023
请输入真正的错误以及数据库约束的实际外观。

答: 暂无答案