尝试更改我的数据库时 Foreach 带有下划线

Foreach is underlined when trying to change my database

我不知道这里发生了什么,想知道是否有人可以解决我的问题。 我正在尝试用数据库中 <= 2 到 "Jerry" 的 teacher_Id 替换所有 First_names。

foreach 带有下划线并显示错误:

Cannot convert type 'string' to 'Project.TeacherDetail'

private void button3_Click(object sender, EventArgs e)
    {
        ProjectDBDataContext Context = new ProjectDBDataContext();
        var r =
                from b in Context.TeacherDetails
                where b.TeacherId <= 2
                select b.First_Name ;

           foreach (TeacherDetail b in r)            
              b.First_Name = "Jerry";

           Context.SubmitChanges();


    }

如有任何帮助,我们将不胜感激

假设;

public class TeacherDetails 
{
    public string First_Name { get; set; }
    //....
}

你需要这样实现;

private void button3_Click(object sender, EventArgs e)
{
    ProjectDBDataContext Context = new ProjectDBDataContext();
    var r =
            from b in Context.TeacherDetails
            where b.TeacherId <= 2
            select b; //Remove .First_Name here

    foreach (TeacherDetail b in r)            
        b.First_Name = "Jerry";

    Context.SubmitChanges();
}

您选择了 stringselect b.First_Name,而您随后会循环遍历它,就好像它是 foreach 中的 TeacherDetail