gpt4 book ai didi

c# - EF Core - EntityTypeBuilder 一对多关系?

转载 作者:行者123 更新时间:2023-12-05 06:33:51 25 4
gpt4 key购买 nike

我有点困惑,关于如何在 EF Core 2.1 中建立关系。我一直在以流畅的方式进行。

我有

public class Employee : IdentityUser
{
public int BranchId { get; set; }
public Branch Branch { get; set; }

}

public class Branch
{
public int Id { get; set; }
public int CompanyId { get; set; }
public Company Company { get; set; }

public ICollection<Employee> Employees { get; set; }
}

public class EmployeerConfig : IEntityTypeConfiguration<Employee>
{
public void Configure(EntityTypeBuilder<Employee> builder)
{
builder.ToTable("Employees");
}
}

public class BranchConfig : IEntityTypeConfiguration<Branch>
{
public void Configure(EntityTypeBuilder<Branch> builder)
{
builder.HasKey(x => x.Id);
builder.Property(x => x.Id).ValueGeneratedOnAdd();

builder.HasMany(x => x.Employees);

builder.ToTable("Branches");
}
}

我看到的所有示例大多使用 dbcontext 模型构建器,但不再需要这种方式,因为您现在可以像我一样使用拆分它。

我首先为 Company 和 Branch 建立了 2 种关系我什至没有指定关系但是我建立了我知道的数据库,但是当我尝试与 Employee 和 Branch 建立关系时,关系没有形成。

这让我在分支配置中添加了 builder.HasMany(x => x.Employees),现在关系正常了,但是我不确定我是否在 Employee 区域指定了一些东西来使完成?

我也不知道我是否还需要将虚拟添加到我的集合中,以及为什么如果我不使用 ToTable() 并构建我的数据库,所有表名都会缩写,我认为这是自动的。

最佳答案

EmployeerConfig 很好,如果您愿意,您可以添加 key

对于 Branch Config 添加这一行希望这对你有帮助。

     builder.HasMany(x => x.Employee).WithOne(b => b.Branch).HasForeignKey(b => b.BranchId)
.OnDelete(DeleteBehavior.Cascade);

关于c# - EF Core - EntityTypeBuilder 一对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50498791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com