我无法解释代码。看看不同的行为:
var project = DB.Project.Find(1000111);
project.MustLinkToMF = false;
// Includes id = 1000111; MustLinkToMF = false; - From Cache?
var projects1 = DB.Project.Select(p => p).ToList();
// Doesn't contain 1000111! - Not From Cache?
var projects2 = DB.Project.Where(p => p.MustLinkToMF == false).Select(p => p).ToList();
DB.SaveChanges();
如何获取缓存数据,包括我的更改? 如何在 SaveChanges之前使用一个简单的查询获取项目2? 谢谢!
答案 0 :(得分:0)
您可以浏览第一级缓存中的实体:
ctx.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified).Select(x => x.Entity).OfType<T>()
只需将EntityState.Modified替换为您想要的内容即可。 请在此处查看示例:https://weblogs.asp.net/ricardoperes/entity-framework-code-first-get-entities-from-local-cache-or-the-database