我对实体框架的理解是,如果它可以从其缓存中回答查询,那么它将会。然而,我的简单测试表明,重复的查询会在数据库中出现问题,即使它们之前得到了肯定的回答:
var u1 = context.Users.SingleOrDefault(u => u.Id == 1);
var u2 = context.Users.SingleOrDefault(u => u.Id == 1);
这些查询成功。对于每个,我在SQL事件探查器中看到SELECT TOP (2)
。
为什么EF会转到第二个查询的数据库?