所以,这是我对这个常见问题的独特看法。

我做我的查询,获取我的对象,然后将对象传递到一个表单中,它用来自对象的数据填充表单(这不是通过引用传入的)。

然后我编辑被查询的对象的值(通过表单),然后返回一个由表单中的值构造的新对象。

然后我想将其更新到数据库。附加什么都不做(运行但不更新)。 SubmitChanges 也不做任何事情(并且两者一起使用时什么也不做)。

我错过了什么?

更新:这是我正在使用的代码:

// In constructor
_dataMap = new DataMapDataContext();
_addresses = _dataMap.AddressItems
         .Where(address => address.InsertUserName == _currentUser.Name).ToList();



public void EditButtonClick()
{
    using (AddAddressForm form = new AddAddressForm(_addresses[_currentAddress]))
    {
        form.Text = "Edit Address";
        if (DialogResult.OK == form.ShowDialog())
        {
            _addresses[_currentAddress] = form.Item;
            _dataMap.SubmitChanges();
            DisplayItem();
        }
    }
}

最佳答案

您需要从数据库中获取记录,更新它的值,然后调用 SubmitChanges()

using(MyDataContext db = new MyDataContext())
{
    // get the record
    Product dbProduct = db.Products.Single(p => p.ID == 1);

    // set new values
    dbProduct.Quantity = 5;
    dbProduct.IsAvailable = false;

    // save them back to the database
    db.SubmitChanges();
}

关于c# - 如何在 Linq-to-SQL 中保存更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3766417/

10-12 05:09