0

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);
    }
4

2 に答える 2

4

ラムダ式がどのように機能するかを学ぶ必要があります。

.Where(c => c.UserName == username)

c暗黙的に型指定されたパラメーターです。

また、単一の結果が必要な場合は、FirstOrDefault()代わりに呼び出す必要があります。Where()シーケンスを返します。

于 2012-04-11T14:14:45.390 に答える
0
Customer customer = db.Customer.Single(c=>c.UserName == username)

一致する要素が 1 つ以上返された場合は例外をスローします

また

Customer customer = db.Customer.SingleOrDefault(c=>c.UserName == username);

複数の一致する要素を返す場合は null を返します

于 2012-04-11T14:24:18.310 に答える