我在实体框架中有一个映射挑战。
在数据库中,我有两个表之间的多对多关系,中间表的两者的PK如下:
我需要将此关系映射到一对多域实体关系,如下所示:
如何使用Fluent API进行映射?
答案 0 :(得分:1)
您可以使用导航属性并在模型中设置Dependents表:
public class Title
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Person> Dependents { get; set; }
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class MyContext : DbContext
{
public DbSet<Title> Titles { get; set; }
public DbSet<Person> People { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Title>()
.HasMany<Person>(t => t.Dependents)
.WithMany()
.Map(d =>
{
d.MapLeftKey("Title_Id");
d.MapRightKey("Person_Id");
d.ToTable("Dependents");
});
}
}