EntityFramework核心一对多配置

时间:2017-04-02 10:34:20

标签: entity-framework entity-framework-core

我正试图将实体关系配置为一对多。

如果配置为不允许删除父项,如果它有子项并允许创建没有子项的父项,那么该怎么办?

Folling EF Core文档示例。我如何配置博客不允许删除如果它有帖子但可以创建博客。

1 个答案:

答案 0 :(得分:1)

在DbContext的OnModelCreating方法中设置OnDelete Restrict。如下:

实体:

public class Blog
{
    public int Id{get; set;}

    public string Name{get; set;}

    public virtual ICollection<Post> Posts{get; set;}
}

public class Post
{
    public int Id{get; set;}

    public string Name{get; set;}

    public int BlogId {get; set;}

    public virtual Blog Blog{get; set;}
}

DbContext中的配置:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Blog>()
        .HasMany(a => a.Posts)
        .WithOne(a => a.Blog)
        .HasForeignKey(a => a.BlogId)
        .IsRequired()
        .OnDelete(DeleteBehavior.Restrict);
}