在EF Core中,可以使用HasOneHasMany方法来设置外键可为空。

假设有两个实体类ParentChild,其中Child类有一个可为空的外键ParentId,可以按照以下方式设置外键可为空:

public class Parent
{
    public int Id { get; set; }
    public ICollection<Child> Children { get; set; }
}

public class Child
{
    public int Id { get; set; }
    public int? ParentId { get; set; }
    public Parent Parent { get; set; }
}

public class AppDbContext : DbContext
{
    public DbSet<Parent> Parents { get; set; }
    public DbSet<Child> Children { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Child>()
            .HasOne(c => c.Parent)
            .WithMany(p => p.Children)
            .HasForeignKey(c => c.ParentId)
            .IsRequired(false); // 设置外键可为空
    }
}

在上述代码中,通过在HasForeignKey方法中使用IsRequired(false)来设置外键可为空

EFCore 怎么设置外键可为空

原文地址: https://www.cveoy.top/t/topic/iCV3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录