实体框架 - Changetracker包含许多项目

时间:2017-07-19 09:05:52

标签: c# database entity-framework entity-framework-6 change-tracking

我有一个使用Entity Framework 6的C#应用​​程序。 我查询这样的数据库:

public static DB.Core.DBBlob getBlob(DB.Core.DBAspect aspect, int index)
    {
        var blobs = aspect.DBBlobs.Where(b => b.Index == index);
        return blobs.OrderByDescending(b => b.CreationTime).FirstOrDefault();
    }

现在的问题是,changetracker包含2个条目 enter image description here

第一项是我从数据库中查询的项目,第二项是我用where语句排除的项目(我只希望项目的索引== 1)。

似乎EF6正在从数据库加载两个条目并添加到changetracker。

我尝试过设置以下设置:

dbm.Configuration.AutoDetectChangesEnabled = false;
dbm.Configuration.LazyLoadingEnabled = false;
dbm.Configuration.ProxyCreationEnabled = false;

希望有人能够帮助我。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 问题是实体框架正在加载所有“子”元素。 我现在做的是直接查询DbSet(采用数据库模型)并在where语句中添加父项的Id。