Vac*_*ano 5 c# entity-framework
我有一个实体框架EntityCollection.
我需要从数据库中删除与给定where子句匹配的所有项.这是我现有的代码:
// Perform the deletes
foreach (var deleteReq in order.Requirements.Where(x=>!orderContract.Requirements.Any(y=>y.RequirementId==x.RequirementId)))
{
order.Requirements.Remove(deleteReq);
}
Run Code Online (Sandbox Code Playgroud)
基本上我试图从order.Requirements集合中删除任何不在orderContract.Requirements集合中的东西(在Id上匹配).
正如您可能猜到的,此代码抛出异常,因为我正在修改我正在迭代的集合.
通常我会使用,RemoveAll()但EntityCollection不支持该方法.
那么......我怎样才能删除我需要的所有记录?
Vac*_*ano 12
我创建了一个单独的列表,它似乎工作:
// Perform the deletes
var reqsToDelete = order.Requirements.Where(x=>!orderContract.Requirements.Any(y=>y.RequirementId==x.RequirementId)).ToList();
foreach (var deleteReq in reqsToDelete)
{
order.Requirements.Remove(deleteReq);
}
Run Code Online (Sandbox Code Playgroud)
这样,当我从order.Requirements列表中删除该项时,它不会影响我正在迭代的列表.
| 归档时间: |
|
| 查看次数: |
8109 次 |
| 最近记录: |