所以我遇到了这个错误:
未处理的类型' System.Data.Entity.ModelConfiguration.ModelValidationException'发生在EntityFramework.dll中。
以下是代码:
public ActionResult SaveItems(string[] fooItems, int category_id)
{
foreach (item item in DB.items)
{
if (item.category_id == category_id)
{
if(item != null)
DB.items.Remove(item);
DB.SaveChanges();
}
}
}
我试图从数据库中删除某个项目,然后在我收到此错误后保存更改。
感谢任何帮助。
谢谢!
答案 0 :(得分:2)
正如评论中正确提到的那样,您在使用foreach循环时无法对基础列表进行更改。将您的操作方法更改为:
public ActionResult SaveItems(string[] fooItems, int category_id)
{
var itemsToRemove = DB.items.Where(i => i.category_id == category_id).ToList();
DB.items.RemoveRange(itemsToRemove);
DB.SaveChanges();
}
答案 1 :(得分:0)
你有几个问题:
我会使用以下内容:
public ActionResult SaveItems(string[] fooItems, int category_id)
{
var itemsToRemove = DB.items.Where(e => e.category_id == category_id)
.ToList();
foreach (var item in itemsToRemove)
{
DB.items.Remove(item);
}
DB.SaveChanges();
}