C# EntityFramework查询为关系返回相同的对象
我很难把标题表达得更有意义,所以我的问题有点冗长 我有这个问题:C# EntityFramework查询为关系返回相同的对象,c#,entity-framework,C#,Entity Framework,我很难把标题表达得更有意义,所以我的问题有点冗长 我有这个问题: var allSocs = _db.Socs .Where(x => x.Soc6 != null) .Select(x => new SocModel { OccupationalEmploymentStatistics = x.OccupationalEmploymentStatistics .Where(y => y.Geogr
var allSocs = _db.Socs
.Where(x => x.Soc6 != null)
.Select(x => new SocModel {
OccupationalEmploymentStatistics = x.OccupationalEmploymentStatistics
.Where(y => y.GeographyId == 25 && y.Release == "2015A01" && y.Naics == "000000")
.OrderByDescending(z => z.AnnualWageMedian),
Soc6 = x.Soc6,
OnetSocs = x.OnetSoc,
Name = x.Name,
Description = x.Description,
EmploymentProjections = x.EmploymentProjections
.Where(y => y.GeographyId == "201400" && y.Naics == "000000")
}).ToList();
它返回一个名为Soc
s的对象列表,这些对象具有一些基本属性和三个对象属性,Onetsocs
,occulationemploymentstatistics
,以及EmploymentProjections
我的行为是,所有非对象字段都工作正常,EmploymentProjections
和OnetSocs
问题是职业就业统计
表现得很怪异。似乎EF只得到一个职业雇员统计数据
,并将其应用于\u db.Socs
中的所有记录
如果我设置一个断点并将鼠标悬停在\u db.Socs
上,我会看到有一个对象。但是,allsoc
中有适当数量的soc(841)
我尝试过删除OrderByDescending
,看看这是否是问题所在,但我仍然得到相同的行为
对于一些背景信息,我正在使用的表都是外部表,我必须手动绘制关系,因为EF没有识别它们
编辑:更多背景信息。如果我再问一个问题
var socs=\u db.socs.ToList()
,只有第一条记录有任何职业雇员统计数据。因为EF使用标识映射模式,所以其他记录都没有任何。基本上,EF会话将只存储给定实体和id的一个实例,并且每当某些实体指向相同的DB表和主键时,它将始终重用相同的实例。。。我对那个词一点也不熟悉。我如何绕过它来获取我需要的数据?