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();
为什么代码中会出现以下错误?我做什么?
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();