LINQ to SQL不提交更改

时间:2011-05-18 19:46:21

标签: c# linq-to-sql

这似乎是一个受欢迎的问题,因为我已经看到了几个主题。但是,我无法获得更新工作。我有一些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();
}

我做错了什么?

1 个答案:

答案 0 :(得分:-2)

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

database.MarkAsModified(order)
在data.SubmitChanges()

之前