为什么没有触发异常?Linq 的“Any()”不考虑新条目?
MyContext db = new MyContext();
foreach (string email in {"asdf@gmail.com", "asdf@gmail.com"})
{
Person person = new Person();
person.Email = email;
if (db.Persons.Any(p => p.Email.Equals(email))
{
throw new Exception("Email already used!");
}
db.Persons.Add(person);
}
db.SaveChanges()
不应该在第二次迭代时触发异常吗?
前面的代码适用于该问题,但实际情况如下:
我收到一个人的 excel,我对其进行迭代,将每一行作为一个人添加到 db.Persons,检查他们的电子邮件尚未在 db 中使用. 问题是当工作表本身中有重复的电子邮件时(两行具有相同的电子邮件)