【问题标题】:EntityFramework Core one-to-many configurationEntityFramework Core 一对多配置
【发布时间】:2017-04-02 10:34:20
【问题描述】:

我正在尝试配置实体关系一对多。

如果有孩子则不允许删除父母并允许在没有孩子的情况下创建父母?

遵循 EF Core 文档示例。如何配置博客如果有帖子则不允许删除但可以在没有帖子的情况下创建博客。

【问题讨论】:

  • 那是关于验证的。 EF 不会阻止您尝试删除有孩子的父母。如果您展示了您的尝试,我们只能为您提供帮助。

标签: entity-framework entity-framework-core


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多