Entity framework 在同一事务中插入、更新、删除实体框架
我有一个问题,我有一个可以更新数据和插入数据的向导。因此,如果我有一个现有的团队成员列表,我可以更新他们的角色,但如果必要,我还可以向该团队添加/插入一个人。因此,我可以在同一事务中更新角色并将新的团队成员插入同一个表中。数据可以更新到表teamMembers并插入到表teamMembers 当我尝试添加一个新的团队成员时,我还有一个现有成员,我只想更新他的角色。 这两个更改都发生在名为TeamMember的同一个表上。当我调试上下文时,一切看起来都很好。它显示TeamMember表将发生两个更改。一个事务是更新,另一个事务是插入。当我使用以下命令执行更新时:Entity framework 在同一事务中插入、更新、删除实体框架,entity-framework,insert,Entity Framework,Insert,我有一个问题,我有一个可以更新数据和插入数据的向导。因此,如果我有一个现有的团队成员列表,我可以更新他们的角色,但如果必要,我还可以向该团队添加/插入一个人。因此,我可以在同一事务中更新角色并将新的团队成员插入同一个表中。数据可以更新到表teamMembers并插入到表teamMembers 当我尝试添加一个新的团队成员时,我还有一个现有成员,我只想更新他的角色。 这两个更改都发生在名为TeamMember的同一个表上。当我调试上下文时,一切看起来都很好。它显示TeamMember表将发生两个更
var teamMember = new TeamMember
{
Name = user.FullName,
UserProfileId = user.UserProfileId,
RoleId = user.RoleId
};
TeamMemberList.Add(teamMember);
project.TeamMembers = TeamMemberList;
//And then call
this.Context.Projects.Attach(project);
this.Context.Entry(project).State = System.Data.EntityState.Modified;
它会更新,但需要插入的记录失败
如何在同一事务中同时插入和更新同一个表
当前错误为:
已成功提交对数据库的更改,但更新对象上下文时出错。ObjectContext可能处于不一致的状态。内部异常消息:发生引用完整性约束冲突:定义引用约束的属性值在关系中的主体对象和从属对象之间不一致。首先加载现有项目实体,然后添加成员如何
var project = this.Context.Project.Where(p => p.ID = "bar").Include("TeamMembers").FirstOrDefault();
var teamMember= new TeamMember
{
Name = user.FullName,
UserProfileId = user.UserProfileId,
RoleId = user.RoleId
};
project.TeamMembers.Add(teamMember);
this.Context.SaveChanges()
我认为您需要将TeamMember实体添加到上下文的全局列表中。比如:
var teamMember = new TeamMember()
{
Name = user.FullName,
UserProfileId = user.UserProfileId,
RoleId = user.RoleId
}
project.TeamMembers.Add( teamMember );
this.Context.TeamMembers.Add( teamMember );
this.Context.SaveChanges();
谢谢,成功了。是否有任何信息可以解释为什么需要填充本地和全局上下文?本地是指项目实体上的TeamMembers集合?如果是这样,这实际上是将团队成员链接到项目实体。如果“项目”属性在TeamMember实体上公开,那么也可以通过“项目”属性完成。