gpt4 book ai didi

c# - 如何快速更新 ADO 实体?

转载 作者:行者123 更新时间:2023-11-30 22:26:27 25 4
gpt4 key购买 nike

我有一个实体,它有很多属性,我不想手动做类似的事情

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com