[英]Access to Many-to-Many table
我有两个表, 项目和BOM 。 他们的关系是多对多的 。
当我检查我的Migration类时,我可以看到下面自动生成的代码。
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");
});
我认为问题可能是表格本身并不是模型中的实体,而是项目和BOM之间的多对多关系如何在SQL数据库中表示(即使用连接表)的结果。
您是否需要访问它,因为表中需要其他列? 如果是这样, 这个问题和最高投票的答案看起来非常有用。
如果表ProjectBOMs
仅包含项目和BOM的Forign Key列,则表不会导入表。 它将导致BOMS上的项目集合和项目上的BOM集合,但不会作为独立实体提供。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.