你好,我尝试使用EF Fluent API实现多对多关系。我有两个POCO类。
public class Project
{
public int ProjectId { get; set; }
public virtual ICollection<Author> Authors { get; set; }
public Project()
{
Authors = new List<Author>();
}
}
public class Author
{
public int AuthorId { get; set; }
public virtual ICollection<Project> Projects { get; set; }
public Author()
{
Projects = new List<Project>();
}
}
我使用以下代码来映射多对多关系:
////MANY TO MANY
modelBuilder.Entity<Project>()
.HasMany<Author>(a => a.Authors)
.WithMany(p => p.Projects)
.Map(m =>
{
m.ToTable("ProjectAuthors");
m.MapLeftKey("ProjectId");
m.MapRightKey("AuthorId");
});
这个操作创建了数据库中的ProjectsAuthors表。这是我第一次尝试这种关系映射。
如果我忽略这种映射,它会创建一个具有类似架构的AuthorProject表。这样做正确吗?