我正试图将实体关系配置为一对多。
如果配置为不允许删除父项,如果它有子项并允许创建没有子项的父项,那么该怎么办?
Folling EF Core文档示例。我如何配置博客不允许删除如果它有帖子但可以创建博客。
答案 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);
}