我有以下存储库方法:-
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 已修改;枚举操作可能无法执行。Source=System.Core StackTrace:在 System.Collections.Generic.HashSet`1.Enumerator.MoveNext()
尽管我已经创建了 VM 的副本并对其执行了 foreach ..