如何使用.NET Entity Framework将数据插入桥接表?

时间:2015-03-08 17:41:25

标签: c# asp.net linq entity-framework

我似乎陷入了一个特定的问题。我正在使用实体框架,我已经自动生成了数据库中的所有实体。我注意到,我所拥有的任何表格都可以作为桥接表来防止多对多关系,实际上并没有实体;例如,我试图使用的表格称为“DiplomaCertificate”'链接到名为' Degree'通过名为“度关系”的桥接表。 DegreeRelationship接受这两个表的主键,并将它们用作主键和外键。我注意到在我的上下文类中我得到了这个实体而不是实体:

  modelBuilder.Entity<Degree>()
            .HasMany(e => e.DiplomaCertificates)
            .WithMany(e => e.Degrees)
            .Map(m => m.ToTable("DegreeRelationship").MapLeftKey("DegreeID").MapRightKey("ProgramID"));

在我的代码背后,我到目前为止一直在处理插入处理如下:

public void InsertDiplomaProgram(DiplomaCertificate diplomaProgram, List<EntranceRequirementList> entReqList, List<int> degreeIDs)
    {
        using (Pathway_Model context = new Pathway_Model())
        {
            DiplomaCertificate added = null;
            EntranceRequirement addedEntReq = null;
            added = context.DiplomaCertificates.Add(diplomaProgram);


            // create entrance requirement entry for each row entered
            foreach (EntranceRequirementList entry in entReqList)
            {
                EntranceRequirement entReq = new EntranceRequirement()
                {
                    ProgramID = added.ProgramID,
                    CourseID = entry.CourseID,
                    Marks = entry.Mark
                };

                addedEntReq = context.EntranceRequirements.Add(entReq);
            }

            //create degree diploma entry for each row entered
            foreach (int entry in degreeIDs)
            { 
                // normally I would try and use a foreach to populate new entries in the database,
                // but right now I am not sure???
            }



            // commits the add to the databas
            context.SaveChanges();
        }
    }

基本上我正在尝试使用diplomaID,然后将学位ID列表合并到DegreeRelationship表中,但我被困在这里。如果有人能提出建议我会非常感激。谢谢!!

1 个答案:

答案 0 :(得分:0)

我假设下面会有效。

diplomaProgram.Degrees.Add(Degree)

使用这种结构也是有意义的。因此,DiplomaProgram将在其集合中具有映射度(反之亦然)。

More Details