クエリ文字列が顧客注文と等しいOrdersテーブルのレコードを更新しようとしています。テーブル内のです。これは、私が試したものです:linqとの比較を使用して特定のレコードを更新するにはどうすればよいですか?
public ActionResult Checkout(Order order)
{
string newNum = Request.Params["unum"];
int mynum = 0;
bool res = int.TryParse(newNum, out mynum);
//order = db.Orders.Single(o => mynum == o.OrderNum); - tried this first
order = db.Orders.Single(o => o.OrderNum == mynum);
order.RecievedShirt = false;
order.OrderCompleted = true;
db.SaveChanges();
var AuthenticationManager = HttpContext.GetOwinContext().Authentication;
AuthenticationManager.SignOut();
return RedirectToAction("Purchased","Orders");
}
返すエラーがシーケンスが、私は次の操作を行うことにより、この特定の問題を解決することができたいかなる要素
を編集
を含んでいないです。カート内のチェックアウトボタンのアクションリンク:
@Html.ActionLink("Checkout", "Checkout", new { unum = ViewBag.Data}, htmlAttributes: new { @class = "checkout-btn" })
は、それから私は、アクションに以下の更新プログラムを作った:
public ActionResult Checkout(Order order, int ? unum)
その後、私は反映するためにLINQを変更:
order = db.Orders.FirstOrDefault(o => unum == o.OrderNum);
しかし、これは最初のレコードだけを更新するのではなく、答えとしてマークすることはできませんが、質問した通りに進捗をマークしたかったのですが...やや
OrderNumは正しい順序のIDですか? – GeorgeChond
LINQクエリは要素を返しません、そして、あなたはそれが '正確なもの'を持つことを期待しています。あなたはそれをデバッグする必要があります、間違った入力値、間違ったクエリ(そのフィールドは期待どおりに設定されていない可能性があります)、dbが初期化されていないか、接続が間違っています。 – NSGaga
'mynum'は有効なOrderです番号? – Shyju