LinQ查询,只提交/插入一条记录

时间:2014-06-13 09:06:54

标签: c# mysql sql linq

我正在尝试仅将男性教师插入“男教师”表中,但在执行程序后,我在该表中只看到一位教师。另外,我在“Stuffs”表中有一个以上的老师,但插入一个是匹配“if”标准的最后一个。你能纠正这个代码吗?服务实施:

public void AddTeachers()
{
    DataClasses1DataContext data = new DataClasses1DataContext();
    DataClasses2DataContext data2 = new DataClasses2DataContext();
    MaleTeacher tchr = new MaleTeacher();

    foreach (var d in data.Stuffs)
    {
        if (d.stuffSex == true && d.stuffJob == "Teacher")
        {
            tchr.teacherName = d.stuffName;
            tchr.teacherAge = d.stuffAge;
            tchr.teacherJob = d.stuffJob;
            tchr.teacherDepartm = "geology";
            data2.MaleTeachers.InsertOnSubmit(tchr);
        }
    }

    data2.SubmitChanges();

}

2 个答案:

答案 0 :(得分:2)

您只创建一个实例,然后一次又一次地修改它......相反,您应该每次都创建一个不同的MaleTeacher实例。

MaleTeacher tchr = new MaleTeacher();

foreach (var d in data.Stuffs)
{
    if (d.stuffSex == true && d.stuffJob == "Teacher")
    {
        tchr.teacherName = d.stuffName;
        tchr.teacherAge = d.stuffAge;
        tchr.teacherJob = d.stuffJob;
        tchr.teacherDepartm = "geology";
        data2.MaleTeachers.InsertOnSubmit(tchr);
        tchr = new MaleTeacher();
    }
}

答案 1 :(得分:2)

你应该是foreach循环。

  foreach (var d in data.Stuffs)
        {
            if (d.stuffSex == true && d.stuffJob == "Teacher")
            {
                MaleTeacher tchr = new MaleTeacher();
                tchr.teacherName = d.stuffName;
                tchr.teacherAge = d.stuffAge;
                tchr.teacherJob = d.stuffJob;
                tchr.teacherDepartm = "geology";
                data2.MaleTeachers.InsertOnSubmit(tchr);
            }
        }