c# - 使用 Linq to Entities 更新数据库

标签 c# .net linq entity-framework ado.net

我可以使用 Linq to Entities 添加和删除数据库表。但是,以下代码不会更新数据库。 (没有异常(exception),或任何 - 它只是不更新​​。):

        // 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 并尝试了 Answers 和 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();

关于c# - 使用 Linq to Entities 更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11834339/

相关文章:

c# - 如何在 Dynamics 365 中以编程方式获取营业时间详细信息

c# - 如何在 UWP 应用程序中打印?

c# - 获取 JSON 子元素值

c# - 摆脱单元测试对 StreamReader/FileStream 的依赖的好方法是什么?

c# - EntityState 必须设置为 null、Created(对于 Create 消息)或 Changed(对于 Update 消息)

c# - Unity 2d 运动脚本问题

c# - WPF - 如何将文本框添加到包含 ItemsControl 的项目的面板

.net - 如何在 WPF 中更改按钮的制表位虚线边框颜色?

c# - ICollection<T> 使用 LINQ 计算每小时平均值

c# - GroupBy 使用 [Flag] 枚举按单个枚举进行分组