(这是https://stackoverflow.com/posts/40698126)
的延续我正在使用ASP.NET Core和Entity Framework。
我正在尝试选择一组将被删除的记录,我对访问数据不感兴趣,以便在代码中进一步操作它。
所以我修改了所有4个代码版本,目的是同步或异步删除一个或多个记录。为什么只有最后一个需要ToListAsync()
,实际上不会从数据库中检索记录?
var a = db.Employee.FirstOrDefault();
db.Employee.Remove(a);
// db.Employee.RemoveRange(a); <- this also works?
db.SaveChanges();
var b = db.Employee.Where(x => x.FirstName == "Jack");
db.Employee.RemoveRange(b);
db.SaveChanges();
var c = await db.Employee.FirstOrDefaultAsync();
db.Employee.Remove(c);
await db.SaveChangesAsync();
var d = await db.Employee.Where(x => x.FirstName == "Jack").ToListAsync();
db.Employee.RemoveRange(d);
await db.SaveChangesAsync();
异步EF查询是否确保在一个特定HTTP请求中的查询之间或应用程序在任何给定时间点处理的所有HTTP查询之间的异步(这是正确的词?)?