如何使用 .NET 实体框架将数据插入桥接表

本文关键字:数据 插入 桥接 框架 何使用 NET 实体 | 更新日期: 2024-10-30 16:42:01

我似乎被困在一个特定的问题上。我正在使用实体框架,并且我已经从我的数据库中自动生成了所有实体。我注意到,我拥有的任何用作桥接表以防止多对多关系的表实际上都没有实体;例如,我尝试使用的名为"文凭证书"的表通过名为"学位关系"的桥接表链接到名为"学位"的表。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();
        }
    }

基本上,我正在尝试获取文凭ID,并将学位ID列表合并到学位关系表中,但我被困在这里。如果有人能提供建议,我将不胜感激。谢谢!!

如何使用 .NET 实体框架将数据插入桥接表

我假设下面会起作用。

diplomaProgram.Degrees.Add(Degree)

使用这种结构也是有意义的。因此,文凭课程将在其集合中拥有其映射的学位(反之亦然)。

更多详情