Ef code first EF代码优先:如何在保存更改之前选择包含更改的数据?

Ef code first EF代码优先:如何在保存更改之前选择包含更改的数据?,ef-code-first,Ef Code First,我无法解释代码。看看不同的行为: var project = DB.Project.Find(1000111); project.MustLinkToMF = false; // Includes id = 1000111; MustLinkToMF = false; - From Cache? var projects1 = DB.Project.Select(p => p).ToList(); // D

我无法解释代码。看看不同的行为:

        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();
如何获取缓存数据,包括我的更改? 在保存更改之前,如何使用一个简单的查询获取项目2?
谢谢大家!

您可以在一级缓存中浏览实体:

ctx.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified).Select(x => x.Entity).OfType<T>()
ctx.ChangeTracker.Entries()。其中(x=>x.State==EntityState.Modified)。选择(x=>x.Entity)。OfType()
只需替换EntityState。根据需要进行修改。 请参见此处的示例: