Entity Framework Core 什么时候级联删除?

问题描述 投票:0回答:0

我花了最后一个小时阅读了大量网页,我想我已经做到了。但我想确定一下。这是我认为级联删除的规则。

许多:1 :: 删除帖子条目不会级联删除父博客条目。

public class Post
{
    public Blog Blog { get; set; }
}

public class Blog 
{
    public ICollection<Post> Posts { get; set; }
}

Many:1 nullable :: 让 post.Blog 可以为 null 没有区别,删除 Post 不会删除它指向的 Blog 条目。

public class Post
{
    public Blog? Blog { get; set; }
}

public class Blog 
{
    public ICollection<Post> Posts { get; set; }
}

1:Many :: 删除博客条目将级联删除其帖子集合中的所有帖子条目。

public class Blog 
{
    public ICollection<Post> Posts { get; set; }
}

public class Post
{
    public Blog Blog { get; set; }
}

Many:Many :: 从 Student.Classes 中删除一个班级,然后将从 Class.Students 中删除该学生。因此,删除一条记录会从配对集合中恰好删除一条记录。

public class Student
{
    public ICollection<Class> Classes { get; set; }
}

public class Class
{
    public ICollection<Student> Students { get; set; }
}

1:1 not nullable :: 删除一个人对象将删除其匹配的地址对象。删除地址对象将删除其匹配的人对象。 问题: 这是一个周期性的问题吗?或者 EF 或 DB 可以处理这种特定情况吗?

public class Person
{
    public Address Address { get; set; }
}

public class Address
{
    public Person Person { get; set; }
}

1:1 nullable :: 删除地址对象不会删除匹配的人对象。 person.Address 将被设置为 null。但是删除 person 对象将删除 person.Address 对象。

public class Person
{
    public Address? Address { get; set; }
}

public class Address
{
    public Person Person { get; set; }
}

以上都对吗?

entity-framework entity-framework-core
© www.soinside.com 2019 - 2024. All rights reserved.