gpt4 book ai didi

c# - 从同一类型的另一个对象更新 Entity Framework 对象

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:06 25 4
gpt4 key购买 nike

是否有任何方法可以在不列出每个字段的情况下从强类型对象更新对象?
让我们考虑以下情况:

    using (var context = new MyDBEntities())
{
var user = (User)Session["EditedUser"];
var oldUser = context.Users.FirstOrDefault(o => o.Id == user.Id);
oldUser.FirstName= user.FirstName;
oldUser.LastName = user.LastName;
etc ....
context.SaveChanges();
}

我还有29个字段,每次都不愿意一一记下。我要找的应该和这个差不多

using (var context = new MyDBEntities())
{
var user = (User)Session["EditedUser"];
var oldUser = context.Users.FirstOrDefault(o => o.Id == user.Id);
oldUser=user;
context.SaveChanges();
}

由于实体的主键违规,这肯定会失败。我想在这里实现的是更新除主键值之外的所有字段。

最佳答案

感谢'Silvermind',使用附加功能现在我的代码看起来像这样

using (var context = new MyDBEntities())
{
try
{
var user = (User)Session["EditedUser"];
context.Users.Attach(user);
context.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
context.SaveChanges();
Session["EditedUser"] = null;
return "ok";
}
catch (Exception ex)
{
return ex.Message;
}
}

关于c# - 从同一类型的另一个对象更新 Entity Framework 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741206/

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