假设表“Items”为空,然后执行以下代码:
var codes = new List<string>{ "aaa", "aaa" }
foreach (var code in codes)
{
var item = dbContext.Items.SingleOrDefault(r => r.Code.Equals(code)); // (*)
if (item == null)
{
item = new Item();
item.code = code;
dbContext.Items.Add(item);
}
}
dbContext.SaveChanges();
问题:
结果表“Items”将包含两个“aaa”项或只包含一个?
那就是:在第二次迭代中,SingleOrDefault查询(*)将在内存和数据库中搜索?或仅在db?