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.

Original source

Related problems