我首先使用带有实体框架代码的 ASP.NET MVC4。我有一个名为“users”的表,主键为“UserId”。该表可能有 200,000 多个条目。
我需要再插入 50 个用户。我可能会这样做
foreach(User user in NewUsers){
context.Add(user);
}
dbcontext.SaveChanges();
问题是,这些新用户中的一个或多个可能已经存在于数据库中。如果我添加它们然后尝试保存,则会引发错误,并且不会添加任何有效的错误。我可以修改代码来做到这一点:
foreach(User user in NewUsers){
if(dbcontext.Users.FirstOrDefault(u => u.UserId) == null)
{
dbcontext.Users.Add(user);
}
}
dbcontext.SaveChanges();
这会奏效。问题是,它必须在超过 200,000 个条目的表上运行 50 次查询。所以我的问题是,插入这些用户的最高效的方法是什么,忽略任何重复项?