Entity framework 4 在实体框架中将数据插入到具有有效负载的多对多连接表中

Entity framework 4 在实体框架中将数据插入到具有有效负载的多对多连接表中,entity-framework-4,Entity Framework 4,我有一个蛋糕表和一个配料表一个蛋糕由许多配料组成,一种配料可以在许多蛋糕中,因此我用join tableCake\u配料创建了一个多对多映射。然而,除此之外,每种蛋糕使用不同数量的每种配料。例如,在蛋糕香精A中,您可能需要1.25kg面粉,而在蛋糕香精B中,您需要1.5kg面粉。由于配料的数量不同,每个蛋糕中使用的每种配料的成本也不同。因此,我的联接表需要使用有效负载,额外的列是quantity和cost。我通过以下方式成功地建立了这种关系 通过修改从上述教程获得的以下代码块,我可以成功地将ca

我有一个蛋糕表和一个配料表一个蛋糕由许多配料组成,一种配料可以在许多蛋糕中,因此我用join table
Cake\u配料创建了一个多对多映射。然而,除此之外,每种蛋糕使用不同数量的每种配料。例如,在蛋糕香精A中,您可能需要1.25kg面粉,而在蛋糕香精B中,您需要1.5kg面粉。由于配料的数量不同,每个蛋糕中使用的每种配料的成本也不同。因此,我的联接表需要使用有效负载,额外的列是quantity和cost。我通过以下方式成功地建立了这种关系

通过修改从上述教程获得的以下代码块,我可以成功地将
cake\u id
component\u id
添加到联接表中

private void UpdateInstructorCourses(string[] selectedCourses, Instructor instructorToUpdate)
{
    if (selectedCourses == null)
    {
        instructorToUpdate.Courses = new List<Course>();
        return;
    }

    var selectedCoursesHS = new HashSet<string>(selectedCourses);
    var instructorCourses = new HashSet<int>
    (instructorToUpdate.Courses.Select(c => c.CourseID));
    foreach (var course in db.Courses)
    {
        if (selectedCoursesHS.Contains(course.CourseID.ToString()))
        {
            if (!instructorCourses.Contains(course.CourseID))
            {
                instructorToUpdate.Courses.Add(course);
            }
        }
    else
    {
        if (instructorCourses.Contains(course.CourseID))
        {
            instructorToUpdate.Courses.Remove(course);
        }
    }
}
private void UpdateInstructorCourses(字符串[]selectedCourses、讲师讲师或输出日期)
{
如果(selectedCourses==null)
{
讲师输出日期。课程=新列表();
返回;
}
var selectedCoursesHS=新哈希集(selectedCourses);
var instructorCourses=新哈希集
(instructorToUpdate.Courses.Select(c=>c.CourseID));
foreach(数据库课程中的var课程)
{
if(selectedCoursesHS.Contains(course.CourseID.ToString()))
{
如果(!instructorCourses.Contains(course.CourseID))
{
讲师分组日期。课程。添加(课程);
}
}
其他的
{
if(讲师课程包含(课程ID))
{
讲师分组日期。课程。删除(课程);
}
}
}
麻烦在于插入数量和成本(这将被计算)


我该怎么做?我想如果有人能帮我插入数量,我就可以插入计算出的成本。

请使用段落和大写字母。下面的代码块在哪里?讲师/课程示例不适合您的目的,因为您必须将您的关系映射为一个多对多关系,而不是单个多对多关系作为两个一对多关系。您必须在您的模型中将
蛋糕配料
作为一个真正的实体公开;它不仅是一个技术链接表,而且还带有“业务含义”(即数量和成本)=>所需的实体类!这里有一个如何建模这种关系的示例(“带有效负载的多对多关系”):@GertArnold抱歉“下面的代码块”应该出现在上面的代码块之前。对于这个错误,我深表歉意。@Slauma谢谢,让我按照这个例子回去。@Slauma这个解决方案奏效了。谢谢