我正在使用asp.net和mvc 3来创建我的应用程序。这是我的表格的简化版本。
我的表格如下
[学生](身份证,姓名)
[CLASS](ID,SUBJECT)
[CLASSINSTANCE](ID,SUBJECT,CLASSID)
[CLASSINSTANCEDETAIL](学生,CLASSINSTANCEID,出席)
[ENROLLEDIN](STUDENTID,CLASSID)
我有学生和班级之间的关系
CLASS < - 1到MANY - > CLASSINSTANCE < - 1 TO MANY - > CLASSINSTANCEDETAIL < - MANY to 1 - > 学生
学生< - 1到MANY - > ENROLLEDIN < - MANY to 1 - > Class
基本上我需要做的是,evertime我创建了一个新类,我还需要在ClassDetail表中添加一个新记录,其中包含类的类id和每个学生在登记表中的匹配学生ID。例如。如果我创建了一个新的类实例,那么我需要在该表中找到classID,并为ENROLLEDIN表中具有匹配classID的每个学生添加一行新数据。
如果有人知道如何使用mvc3和asp.net在c#中做到这一点,我将非常感激!
PS。我使用我的模型在数据访问层文件夹中使用实体框架导入我的数据库,如果这有任何区别。
答案 0 :(得分: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);
}
这假设直接映射了Student< - >类多对多关系,并且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);
}