[英]Updating Database with Linq to Entities
我可以使用Linq to Entities在數據庫表中添加和刪除。 但是,以下代碼不會更新數據庫。 (沒有例外,或其他任何東西-它只是不會更新。):
// Change box qty
var pnumber = Request.Form["PartNumber"];
var oid = Session["OOID"];
var uid = WebSecurity.CurrentUserId;
var newqty = Request.Form["Quantity"];
var c = (from item in database.Carts
where item.UserId ==
uid && item.PartNumber ==
pnumber && item.OrderId == (string)oid
select item.Boxes).FirstOrDefault();
c = newqty.AsInt();
database.SaveChanges();
Response.Redirect("~/Protected/Account/Shopping/Cart");
有什么想法可能是我做錯了,還是要解決這個問題? 我已經搜索了Stack Overflow,並嘗試了《答案》和Google上提供的各種示例,但是它們幾乎都是相同的,並且沒有幫助。
基本上,您需要檢索實體(記錄)本身,而不僅僅是屬性(列),以便能夠通過EF更新它:
var newqty = Request.Form["Quantity"];
var c = (from item in database.Carts
where item.UserId ==
uid && item.PartNumber ==
pnumber && item.OrderId == (string)oid
select item).FirstOrDefault();
c.Boxes = newqty.AsInt();
database.SaveChanges();
這是@Xander使用Lambda的答案
var newqty = Request.Form["Quantity"];
var c = database.Carts.Where(x => x.UserId ==
uid && x.PartNumber ==
pnumber && x.OrderId == (string)oid).FirstOrDefault();
c.Boxes = newqty.AsInt();
database.SaveChanges();
我知道您說您對他有誤,這更多是出於教育目的:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.