1

当我在 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);

我的流利映射和实体类很好,只是我做错了,我怀疑更新的顺序,并且不知道是什么。

4

0 回答 0