当类已经被引用为FK不工作时,EF多对多

时间:2016-08-03 21:11:09

标签: c# entity-framework

我正在尝试以many-to-many和[{1}}表格的形式在PeoplePenguins之间创建一个实体框架PenguinPeople关系1}}。当我使用下面的代码生成迁移时,不会创建Person_Id。但是,如果我在Penguin类中注释掉3个“OwnerId”行,Penguin_Id就可以了。是什么赋予了?他们应该是独立的。

many-to-many

2 个答案:

答案 0 :(得分:0)

如果你有

ICollection<Penguin> AssignedPenguins { get; set; }

在你的Person类上,只有两个类的Id属性,然后它应该创建关联表。

答案 1 :(得分:0)

我不知道是否有更简单的方法可以做到这一点,但我被迫使用EF docs中概述的FluentAPI。示例仅来自docs,因为很明显我的企鹅/人模型只是实际导致问题的替代品:

modelBuilder.Entity<Post>() 
                .HasMany(p => p.Tags) 
                .WithMany(t => t.Posts) 
                .Map(mc => 
                   { 
                       mc.ToTable("PostTags"); 
                       mc.MapLeftKey("Post_Id"); 
                       mc.MapRightKey("Tag_Id"); 
                   });