我有兩個表,項目和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");
});