我在silverlight应用程序中使用wcf ria。在客户端,我使用以下代码删除一些记录:
var installments = context.Installments.Where(i => i.RequestId == selectedRequest.RequestId);
foreach (var installment in installments)
{
context.Installments.Remove(installment);
}
context.SubmitChanges();
运行此代码时出现以下错误:
收藏被修改;枚举操作可能无法执行。
我该如何解决这个问题?!!
答案 0 :(得分:3)
这种情况正在发生,因为您正在枚举它时从集合中删除对象。我发现解决这个问题的最简单方法是在枚举行的末尾添加.ToArray()
或.ToList()
。即
var installments = context.Installments.Where(i => i.RequestId == selectedRequest.RequestId).ToArray();
这将为您提供与原始集合“分离”的枚举。
希望这会有所帮助。 内特