0

私は次のリポジトリメソッドを持っています:-

public void DeleteVM(int id, string username)
        {
            var VM = tms.TMSVirtualMachines.SingleOrDefault(a => a.TMSVirtualMachineID == id);
            var auditinfo = IntiateTechnologyAudit(tms.AuditActions.SingleOrDefault(a => a.Name.ToUpper() == "DELETE").ID,
                    VM.Technology.TechnologyType.AssetTypeID,
                 username, VM.TMSVirtualMachineID);
            var technology = tms.Technologies.SingleOrDefault(a => a.TechnologyID == id);
            technology.IsDeleted = true;
            tms.Entry(technology).State = EntityState.Modified;
            var vm2 = VM;
            foreach(var ip in vm2.Technology.TechnologyIPs)
            {
            tms.TechnologyIPs.Remove(ip);

            }
            tms.TMSVirtualMachines.Remove(VM);
                      InsertOrUpdateTechnologyAudit(auditinfo);
        }

しかし、次の例外が発生しています:-

System.InvalidOperationException がキャッチされました HResult=-2146233079
Message=Collection が変更されました。列挙操作が実行されない場合があります。ソース = System.Core StackTrace: System.Collections.Generic.HashSet`1.Enumerator.MoveNext() で

VM のコピーを作成し、その上で foreach を実行しましたが..

4

1 に答える 1