public void DeleteGenreList()
{
var genreList = entities.Genres.AsEnumerable();
foreach (var oneGenre in genreList)
{
foreach (var onesong in oneGenre.Songs)
{
entities.Songs.DeleteObject(onesong);
}
entities.Genres.DeleteObject(oneGenre);
}
}
我无法删除包含歌曲对象的Genre对象,因为我收集了修改错误,请帮助thx!
答案 0 :(得分:0)
这不是外键关系问题,你不能删除在某个循环中处理的对象。
您可以使用以下内容:
var genreList = entities.Genres.ToList();
genreList.ForEach(x=>x.Songs.Clear());
entities.Genres.Clear();
答案 1 :(得分:0)
使用For Each循环枚举时,无法修改集合。
这应该有效:
for (int i=0;i<entities.Songs.Count;i++)
{
entities.Songs.DeleteObject(entities.Songs[i]);
i--;
}
答案 2 :(得分:0)
如果流派和歌曲之间的关系被标记为级联删除(在模型映射和数据库中),那么你应该只能删除流派,EF会照顾删除歌曲......