保存Linq-to-SQL中的更改

Vac*_*ano 3 c# linq-to-sql

所以,这是我对这个常见问题的独特启示.

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

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

然后我想将其更新到数据库.Attach什么都不做(运行但不更新).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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Nae*_*raz 6

您需要从数据库中获取记录,更新它的值然后调用 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();
}
Run Code Online (Sandbox Code Playgroud)

  • 你的使用/处置在哪里?tsk,tsk.=) (2认同)