我遇到麻煩將標題語句分解爲更有意義的內容,所以我將在我的問題中做一些細節處理。EntityFramework查詢返回關係相同的對象
我有這樣的EF查詢:
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
,OccupationalEmploymentStatistics
,並EmploymentProjections
的列表。
我遇到的問題是所有的非對象字段都正常工作,EmploymentProjections
和OnetSocs
也是如此。
問題是,OccupationalEmploymentStatistics
行事怪異。 EF似乎只得到一個OccupationalEmploymentStastic
並將其應用於_db.Socs
中的所有記錄。
如果我在_db.Socs
上設置斷點和鼠標,則顯示有only one對象。但是,allSocs
中有合適數量的Socs(841)。
我試着刪除OrderByDescending
看看是否也許這是問題,但我仍然得到相同的行爲。
對於一些背景信息,我正在使用的表都是外部表,並且我不得不手動繪製關係,因爲EF沒有選擇它們。
編輯:一些更多的背景信息。如果我提出的另一個查詢只是 var socs = _db.Socs.ToList()
,則只有第一條記錄根本沒有任何OccupationalEmploymentStatistics
。沒有其他記錄有任何
有趣..我對這個詞根本不熟悉。我如何繞過它來獲取我需要的數據? –