c# - 使用 foreach() 从集合中删除多个实体?

标签 c# entity-framework collections

尝试运行此代码时,我不断收到“集合已修改”错误

var mat = db.Materials
    .Where(m => m.ID == material)
    .First();

var oldCourses = mat.Courses;

foreach (var oldCourse in mat.Courses)
{
    oldCourses.Remove(oldCourse);
}
mat.Courses = oldCourses;

我不知道该怎么做。我确定这是一个常见问题,但我似乎找不到任何解决方案。

任何帮助,甚至是已回答问题的链接都将不胜感激。

最佳答案

您可以使用 .ToList() 简单地枚举此集合以用作迭代器。

foreach (var oldCourse in mat.Courses.ToList())
{
  oldCourses.Remove(oldCourse);
}

关于c# - 使用 foreach() 从集合中删除多个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055323/

相关文章:

vb.net - 如何在 VB.NET 中按字母顺序对通用列表(字符串)进行排序?

c# - 为什么 ForEach 方法仅在 List<T> 集合上?

c# - 使用 foreach 创建包含 2 列的列表

linq - 两个Datacontext之间的关系

c# - 同一张表 'tableName'不能是两个嵌套关系中的子表

c# - Entity Framework 构造函数错误

asp.net-mvc - DAL 中的 app.config 和 Web 应用程序中的 web.config

java - 如何从 TreeSet 中删除最旧的 Student 对象?

c# - Awesomium JSObject 如何工作我找不到示例

c# - 开发大型服务结构应用程序