0

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

我的表格如下

[学生](身份证,姓名)

[课程](ID,主题)

[CLASSINSTANCE](ID、主题、CLASSID)

[CLASSINSTANCEDETAIL](学生 ID、班级 ID、出勤率)

[注册](学生,班级)

我有学生和班级之间的关系

CLASS <- 1 to MANY -> CLASSINSTANCE <- 1 TO MANY -> CLASSINSTANCEDETAIL <- MANY to 1 -> STUDENT

学生<- 1 到 MANY ->招生<- MANY 到 1 ->班级

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

如果有人知道如何在 c# 中使用 mvc3 和 asp.net 做到这一点,我将非常感激!

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

4

1 回答 1

0

好吧,要使用 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);
}

This assumes that the Student<->Class many-to-many relationship was mapped directly and the EnrolledIn table was not mapped to an entity. If it was, try this:

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);
}
于 2013-01-23T22:35:48.253 回答