查询Entitiy Framework缓存

时间:2017-05-09 11:42:39

标签: c# entity-framework

是否可以对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

1 个答案:

答案 0 :(得分:4)

实体框架管理DbSet.Local中的缓存数据。它是一个可观察的集合,可以将Where之类的Linq查询应用于它。在调用added之前,它将包含已加载的条目以及removedSaveChanges等不同状态的条目。