我有两个表,项目和BOM。他们的关系是多对多。访问多对多表
当我检查我的移植类,我可以看到下面的代码是自动生成的。
CreateTable(
"dbo.ProjectBOMs",
c => new
{
Project_Id = c.Int(nullable: false),
BOM_Id = c.Int(nullable: false),
})
.PrimaryKey(t => new { t.Project_Id, t.BOM_Id })
.ForeignKey("dbo.Projects", t => t.Project_Id, cascadeDelete: true)
.ForeignKey("dbo.BOMs", t => t.BOM_Id, cascadeDelete: true)
.Index(t => t.Project_Id)
.Index(t => t.BOM_Id);
但是,当我尝试使用以下方法访问此表时,它没有显示出来。
using(var db = new ApplicationDbContext())
{
db.ProjectBOMs //<== there's no ProjectBOMs in db
}
由于ProjectBOMs表已经自动生成的,我必须再次写入下面的代码能够访问表?
modelBuilder.Entity<Project>()
.HasMany<BOM>(x => x.BOMs)
.WithMany(x => x.Projects)
.Map(x =>
{
x.MapLeftKey("Project_Id");
x.MapRightKey("BOM_Id");
x.ToTable("ProjectBOMs");
});