Asp.Net MVC 程序错误

Asp.Net MVC Program error

为什么代码中会出现以下错误?我做什么?

public ActionResult Edit(int? id)
{
    Emp emp = from c in db.Emps.Where(e => e.EmpId == id).Select(c).SingleOrDefault();
    EmpModel model = new EmpModel()
    {
        EmpId = emp.EmpId,
        EmpName=emp.EmpName,
        EmpJob=emp.EmpJob,
        EmpSalary=emp.EmpSalary,
        DeptId=emp.DeptId
    };
    return View(emp);
}

Errors:

1)The name 'c' does not exist in the current context Error:

2) A query body must end with a select clause or a group clause

Click here to see Image

因为您使用了 select 扩展方法,该方法要求您在 Emp 对象中 select 需要的字段。顺便说一下,当您使用 LINQ 查询语法

时,您真的不需要使用 From a in db

例如:

   Emp EmpObj = Db.Emps.Where(e => e.EmpId == id).Select(x => x.EmpName).SingleOrDefault();

此 select 查询将 return 只有一个特定值。但是如果你需要从中取出多个参数。您可以 return 来自 Select 扩展方法的对象,如下所示:

.Select(x => new {x.Name, x.Address, x.Gender} ).SingleOrDefault();

希望对您有所帮助,请在您再次提问之前阅读; How should i ask a good question?

此语法不需要 from c in 部分,您也可以大大简化其余部分:

Emp emp = db.Emps.SingleOrDefault(e => e.EmpId == id);

试试下面的代码

EmpModel model = db.Emps.Where(e => e.EmpId == id).Select(x => new EmpModel { EmpId=x.EmpId , EmpName =x.EmpName, EmpJob =x.EmpJob, EmpSalary=x.EmpSalary, DeptId=x.DeptId }).SingleOrDefault();