我正在尝试使用User.Identity.Name编辑客户。
我不知道如何在控制器中写出Where条件。
看起来很容易。你可以帮帮我吗?感谢。
这是我的编码。
[Authorize]
public ActionResult Edit()
{
//the username gets username through User.Identity.Name.
string username = User.Identity.Name;
//How can I write below coding?
//In DB, it has userName field.
Customer customer = db.Customer.Where(userName = username);
return View(customer);
}
[HttpPost]
public ActionResult Edit(Customer customer)
{
if (ModelState.IsValid)
{
db.Entry(customer).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(customer);
}
答案 0 :(得分:4)
您需要了解lambda expressions的工作原理:
.Where(c => c.UserName == username)
c
是隐式类型参数。
此外,如果您想要一个结果,则应该拨打FirstOrDefault()
; Where()
返回一个序列。
答案 1 :(得分:0)
Customer customer = db.Customer.Single(c=>c.UserName == username)
如果返回一个匹配元素
,则抛出异常或
Customer customer = db.Customer.SingleOrDefault(c=>c.UserName == username);
如果返回多个匹配元素,返回null