EF4 Update Entity Without First Getting Entity

前端 未结 3 2027
Happy的楠姐
Happy的楠姐 2020-12-31 10:33

How can I update an entity without having to make a call to select it. If I supply the key for the entity, should it not know to update after SaveChanges() is called on the

3条回答
  •  无人及你
    2020-12-31 11:19

    You can do this in a somewhat artificial way, by adding the entity and changing the EntityState to Modified:

    var user = new User();
    user.Id = 2;
    user.Username = "user.name";
    user.Name = "ABC 123";
    
    context.AddToUsers(user);
    ObjectStateEntry userEntry = context.ObjectStateManager.GetObjectStateEntry(user);
    userEntry.ChangeState(EntityState.Modified);
    
    context.SaveChanges();
    

    In this way you will be telling the ObjectContext to find an entry with Id = 2 and update it rather than adding a new entry to the database.

提交回复
热议问题