实体框架在更新时在两个现有对象之间插入多对多关系

时间:2010-03-11 20:51:14

标签: entity-framework insert many-to-many

我正在尝试这样做:

using(var context = new SampleEntities())
{
     User user = select a user from database;

     //Update user's properties
     user.Username = ...
     user.Website = ...

     //Add a role
     Role role = select a role from  database  
     //trying to insert into table UserRoles which has columns (UserID, RoleID)  
     user.Roles.Add(role); 

     //Apply property changes
     context.ApplyPropertyChanges("Users", user);
     context.SaveChanges();
}

但是,我得到一个异常,告诉我“ObjectContext中的现有对象处于已添加状态”,并且不能“ApplyPropertyChanges”。 如果删除“ApplyPropertyChanges()”,则会添加用户。

这些方法的调用顺序是什么?我不需要单独做它们吗? 感谢。

1 个答案:

答案 0 :(得分:1)

我不认为你的User对象是分离的,因此你不需要调用ApplyPropertyChanges()