当我在MVC4操作方法中使用以下代码时,我在其下面得到错误:
var role = _roleRepository.GetByName(model.RegistrationType.ToString());
var mr = new MemberRole();
mr.Priority = int.MaxValue;
mr.IsActive = true;
entity.MemberRoles.Add(mr);
role.MemberRoles.Add(mr);
_roleRepository.Update(role);
_memberRepository.Insert(entity);
发生了参照完整性约束违规:定义参照约束的属性值在关系中的主体和从属对象之间不一致。
我理解这一点,但需要移动和交付,尝试了以下方法,给出了错误。我认为我还无法更新角色,因为其中一个MemberRole
'孩子'没有有效的Member
引用(FK):
var role = _roleRepository.GetByName(model.RegistrationType.ToString());
var mr = new MemberRole();
mr.Priority = int.MaxValue;
mr.IsActive = true;
entity.MemberRoles.Add(mr);
role.MemberRoles.Add(mr);
//_roleRepository.Update(role);
_memberRepository.Insert(entity);
* INSERT语句与FOREIGN KEY约束FK_MemberRole_Role_RoleId冲突。冲突发生在数据库Educ8,表dbo.Role,列Id。*
我终于在MemberRole上仅使用FK属性取得了成功,如下所示,一切都很和平和好:
_memberRepository.Insert(entity);
var role = _roleRepository.GetByName(model.RegistrationType.ToString());
var mr = new MemberRole();
mr.MemberId = entity.Id;
mr.RoleId = role.Id;
mr.Priority = int.MaxValue;
mr.IsActive = true;
_memberRoleRepository.Insert(mr);
我的流利映射和实体类很好,只是我做错了什么,w.r.t。我怀疑的更新顺序,并不知道是什么。