我有一个带有 EF 的 MVC Web 应用程序(代码优先)。
在我的“导入”函数中,我想将项目列表添加到我的数据库中(带有 DbSets 的 DbContext 项目)。
使用“foreach”循环,我尝试将每个项目添加到数据库并保存。
public static void AddItem(Item item)
{
ItemService.AddItem(item);
UOW.Commit();
}
和 -
//UOW
public void Commit()
{
m_context.SaveChanges();
}
由于数据库中可能已经存在一些项目,我将“AddItem”放在“try-catch”块中,所以如果它无法添加项目 - 它将继续到下一个项目。
问题是只要项目不在数据库中,它就可以很好地工作。如果有一个项目已经存在 - 我得到一个错误,它不能添加一个重复的键,然后我得到这个错误的所有下一个项目(也是数据库中不存在的项目)!