所以,这是我对这个常见问题的独特看法。
我做我的查询,获取我的对象,然后将对象传递到一个表单中,它用来自对象的数据填充表单(这不是通过引用传入的)。
然后我编辑被查询的对象的值(通过表单),然后返回一个由表单中的值构造的新对象。
然后我想将其更新到数据库。附加什么都不做(运行但不更新)。 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/