查询Entity Framework缓存

5

在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

4
您可能想要使用 bSet.Local - grek40
3
DbSet.Local 文档:https://msdn.microsoft.com/zh-cn/library/gg696248(v=vs.113).aspx - Geoff James
@grek40:感谢您的评论,DbSet.Local解决了问题。请将您的评论发布为答案! - Moerwald
@Moerwald 顺便提一下:当你在 "@user" 提及中添加用户的个人资料链接时,该用户将不会收到通知。 - grek40
@grek40,谢谢,我明白了。 - Moerwald
1个回答

4

实体框架管理 DbSet.Local 中的缓存数据。它是一个可观察集合,可应用于其中的 Linq 查询,如 Where。它将包含加载的条目以及不同状态的条目,如 addedremoved,直到调用 SaveChanges


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接