我有两个模特分类; SecurityRole& SecurityRoleTypePermission。其中每个Securityrole可以具有零到多个SecurityRoleTypePermission。现在我有以下存储库方法,目的是删除相关的SecurityRole&如果它们是可用的,它的所有SecurityRoleTypePermissions: - 我尝试了以下代码: -
public void DeleteRole(int id, string username)
{
var role = tms.SecurityRoles.SingleOrDefault(a=>a.SecurityRoleID ==id);
var auditinfo = IntiateAdminAudit(tms.AuditActions.SingleOrDefault(a => a.Name.ToUpper() == "DELETE").ID, tms.SecurityTaskTypes.SingleOrDefault(a => a.Name.ToUpper() == "SECURITY ROLE").ID, username, role.Name);
var srtp = role;
foreach (var i in srtp.SecurityroleTypePermisions)
{
tms.SecurityroleTypePermisions.Remove(i);
}
tms.SecurityRoles.Remove(role);
InsertOrUpdateAdminAudit(auditinfo);
}
但我得到以下例外: -
Collection was modified; enumeration operation may not execute.
所以我的问题是为什么我收到此错误,虽然我已将角色对象复制到新的srtp变量?
第二个问题,我需要知道是否有办法删除对象导航属性,而不需要像我的代码那样使用foreach遍历每条记录?
由于