【问题标题】:EF Code First: How to select data included changes before SaveChanges?EF Code First:如何在 SaveChanges 之前选择包含更改的数据?
【发布时间】:2014-11-27 16:25:54
【问题描述】:

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

        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();

如何获取缓存数据,包括我的更改? 如何使用一个简单的查询before SaveChanges 获取项目2? 谢谢!

【问题讨论】:

    标签: ef-code-first


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多