我正在使用 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);
}