LINQ to SQL 不提交更改

本文关键字:提交 to SQL LINQ | 更新日期: 2023-09-27 17:57:08

这似乎是一个流行的问题,因为我已经看到了几个关于这个问题的线程。但是,我无法获得工作更新。我有一些如下所示的 LINQ to SQL 代码:

int orderID = GetOrderID();
using (DBDataContext database = new DBDataContext())
{
  var order = database.Orders.FirstOrDefault(x => x.OrderID == orderID);
  if (order != null)
  {
    order.IsOpen = GetIsOpen();
    database.SubmitChanges();
  }
}

我可以设置断点,并看到它正在进入我的 IF 语句。我还启动了 SQL 分析器,并注意到此代码没有语句。但是,我可以使用以下代码成功添加订单:

Order newOrder = GetNewOrder();
using (DBDataContext database = new DBDataContext())
{
    database.Orders.InsertOnSubmit(newOrder);
    database.SubmitChanges();
}

我做错了什么?

LINQ to SQL 不提交更改

我认为您可能需要通过执行以下操作将订单标记为已更改

database.MarkAsModified(order)

在数据库之前。提交更改()