私は次のリポジトリメソッドを持っています:-
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 を実行しましたが..