如何删除对象的导航属性

时间:2013-11-25 11:01:05

标签: asp.net-mvc linq entity-framework entity-framework-5

我有两个模特分类; 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遍历每条记录?

由于

0 个答案:

没有答案