EF7 RC1:禁用级联删除 [英] EF7 RC1 : Disable Cascade Delete

查看:58
本文介绍了EF7 RC1:禁用级联删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在昨天发布的EntityFramework 7的RC1中,添加了Cascade Delete。

In the RC1 of EntityFramework 7, released yesterday, Cascade Delete was added.

要针对每个关系禁用它,我可以使用:

To disable it per relationship, I can use :

      builder.Entity<Site>().HasOne(e => e.Person)
      .WithMany(x => x.Sites).Metadata.DeleteBehavior = DeleteBehavior.Restrict;

我想为DbContext全局禁用它,但没有找到方法。我该怎么办?

I want to disable it globally for a DbContext, but I didn't find a way. How can I do ?

推荐答案

有人在github项目论坛上说,目前唯一的方法就是迭代方法 OnModelCreating(ModelBuilder builder)中的所有关系,并将 DeleteBehavior 属性设置为 DeleteBehavior .Restrict

Someone stated on the github project forum that the only way to do it right now is to iterate through all relationships in the method OnModelCreating(ModelBuilder builder), and set the DeleteBehavior property to DeleteBehavior.Restrict :

        foreach (var relationship in builder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
        {
            relationship.DeleteBehavior = DeleteBehavior.Restrict;
        }

这篇关于EF7 RC1:禁用级联删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆