根据另一个表中的值向表中添加多个新数据行



我正在使用 asp.net 和mvc 3来创建我的应用程序。这是我的表格的简化版本。

我的表格如下

[学生] (ID, 姓名)

[类](ID,主题)

[类实例] (ID, SUBJECT, CLASSID)

[CLASSINSTANCEDETAIL] (STUDENTID, CLASSINSTANCEID, ATTENDANCE)

[注册] (学生证, 类证)

我有学生和班级的关系

类 <- 1 对多 ->类实例 <- 1 对多 ->

类实例详细信息 -> 学生

学生<- 1 对多 ->

注册 <->

本质上,我需要做的是,每次我创建一个新班级时,我还需要在 ClassDetail 表中添加一个新记录,其中包含班级的类 ID 和每个学生的注册表中匹配的学生 ID。如果我创建了一个新的类实例,则需要在该表中找到 classID,并为 ENREGISTEREDIN 表中具有匹配类 ID 的每个学生添加新的数据行。

如果有人知道如何使用 mvc3 和 asp.net 在 c# 中执行此操作,我将不胜感激!

附言。我使用实体框架将数据库与我的模型导入到数据访问层文件夹中,如果这有什么不同的话。

好吧,要使用 Linq 在 C# 上创建新的ClassDetail记录,您可以使用:

var class = classInstance.Class;
var newDetails = from s in class.Students
                 select new ClassDetail
                 {
                     ClassInstance = classInstance, 
                     Student = s
                 };
foreach(ClassDetail cd in newDetails)
{
    ClassDetails.Add(cd);
}

这假定学生<类>多对多关系是直接映射的,而EnrolledIn表未映射到实体。 如果是,请尝试以下操作:

var class = classInstance.Class;
var newDetails = from ei in class.EnrolledIn
                 select new ClassDetail
                 {
                     ClassInstance = classInstance, 
                     Student = ei.Student
                 };
foreach(ClassDetail cd in newDetails)
{
    ClassDetails.Add(cd);
}

相关内容

  • 没有找到相关文章

最新更新