Entity Framework - Changetracker 包含许多项目
Entity Framework - Changetracker contains to many items
我有一个使用 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 个条目
第一项是我从数据库中查询的,第二项是我用 where 语句排除的(我只想要索引 == 1 的项目)。
似乎 EF6 正在从数据库加载这两个条目并添加到 changetracker。
我已经尝试设置以下设置:
dbm.Configuration.AutoDetectChangesEnabled = false;
dbm.Configuration.LazyLoadingEnabled = false;
dbm.Configuration.ProxyCreationEnabled = false;
希望有人能帮助我。
我找到了解决办法。
问题是 Entity Framework 正在加载所有 "child" 元素。
我现在做的是直接查询 DbSet(采用数据库模型)并在 where 语句中添加父项的 Id。
我有一个使用 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 个条目
第一项是我从数据库中查询的,第二项是我用 where 语句排除的(我只想要索引 == 1 的项目)。
似乎 EF6 正在从数据库加载这两个条目并添加到 changetracker。
我已经尝试设置以下设置:
dbm.Configuration.AutoDetectChangesEnabled = false;
dbm.Configuration.LazyLoadingEnabled = false;
dbm.Configuration.ProxyCreationEnabled = false;
希望有人能帮助我。
我找到了解决办法。 问题是 Entity Framework 正在加载所有 "child" 元素。 我现在做的是直接查询 DbSet(采用数据库模型)并在 where 语句中添加父项的 Id。