2017-04-02 67 views
0

我試圖配置實體關係一對多。EntityFramework核心一對多配置

什麼配置的方式不允許刪除家長,如果它有孩子,並被允許創建沒有孩子的家長?

Folling the EF Core documentation example。我如何配置博客不允許刪除,如果它有帖子,但可以創建博客帖子。

+1

這是對驗證。英孚不會阻止你試圖刪除有子女的父母。如果你展示你的嘗試,我們只能幫助你。 –

回答

1

Set OnDelete在OnModel中限制DbContext的創建方法。如下:

實體:

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); 
}