我有一个具有如此多属性的实体,我不想手动执行类似的操作
public void Update(Contact cont)
{
using (var ctx = new DatabaseEntities())
{
var res = from n in ctx.Contacts
where n.ContactID == cont.ContactID
select n;
var selContact = res.First();
selContact.AddressSuiteNumber = cont.AddressSuiteNumber;
selContact.PhoneNumber = cont.PhoneNumber;
/* and doing this for eeeeeeevery 40 properties */
ctx.SaveChanges();
}
}
我试过了
selContact = cont
没有效果。是否有任何快速方法可以将数据从 Update() 方法中作为参数传递的实体实例复制到 LINQ select 中找到的数据,然后保存它?
最佳答案
如果您的实体尚未附加到上下文,您可以尝试附加它并将其状态更改为已修改
:
using (var ctx = new DatabaseEntities())
{
ctx.Contacts.Attach(cont);
// Marks all properties as modified, so new values will be pushed to DB on SaveChanges
ctx.ObjectStateManager.ChangeObjectState(cont, System.Data.EntityState.Modified);
ctx.SaveChanges();
}
关于c# - 如何快速更新ADO实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11779425/