Update Entity Framework object from another object of same type
c#, entity-framework-4
Solution
Used the Attach function thanks to 'Silvermind' Now my code looks like this
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;
}
}
Problem
Is there any method to update an object from a strongly typed object without listing each field ? Lets consider the following case: ``` 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(); } ``` I have 29 more fields and I am not willing to write them down one by one every time. What I am looking for should be similar to this ``` using (var context = new MyDBEntities()) { var user = (User)Session["EditedUser"]; var oldUser = context.Users.FirstOrDefault(o => o.Id == user.Id); oldUser=user; context.SaveChanges(); } ``` Which fails for sure because of the entity's primary key violation. What I would like to achieve here is to update all the fields except the primary key value.