是否可以对Entity Framework缓存执行显式Where
查询?我知道我可以使用Find
在缓存中查找实体(基于实体主键)。
代码示例:
var person = new PersonToStoreInDb() { Id = 1, Name = "John" };
dbSet.Add(person);
// Perform some other code
...
// DbContext.SaveChanges was NOT called!
var personFromDbSet = bSet.Where(p => p.Name == "John").First();
// personFromDbSet is null because it was not sent towards DB via SaveChanges
答案 0 :(得分:4)
实体框架管理DbSet.Local
中的缓存数据。它是一个可观察的集合,可以将Where
之类的Linq查询应用于它。在调用added
之前,它将包含已加载的条目以及removed
和SaveChanges
等不同状态的条目。