【发布时间】:2011-12-17 12:15:15
【问题描述】:
您好,我尝试使用与 EF Fluent API 的多对多关系。我有 2 个 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");
});
这在 DB 中创建了表 ProjectsAuthors。这是我第一次尝试这种关系映射案例。
如果我省略了这个映射,它会创建具有相似架构的表 AuthorProject。行为正确吗?
【问题讨论】:
-
@Ladislav:没什么。当我创建多对多关系时,我问这是否是常见的 EF 行为。你是斯洛伐克人还是切什人?
-
是的,我是捷克人。据我了解您的问题,行为是正确的。
-
@Ladislav:我在你的博客上读了几篇关于 EF 的文章,干得好 :)
标签: c# many-to-many entity-framework-4.1 entity-relationship