在下面的LINQ查詢中,我想返回在Contractors表中找到的ContractorId。並非聯繫人表中的所有人都在承包商表中。我真正想要的是那些滿足標準的承包商的ContractorIds列表。 ContractorId與ContactId不同。如何使用多個.Select()來簡化LINQ查詢以返回IQueryable(int)
var contractorsWithCertsFor2010 = dc.Contacts.Where(x => x.Contractors
.Any(d => d.ContractorStatus
.Any(date => date.StatusDate.Year >= 2010)))
.Select(x => x.Contractors
.Select(dr => dr.ContractorId));
IEnumerable<int> differenceQuery = allPeople.Except(contractorsWithCertsFor2010);
allPeople是IQueryable<Int>
但contractorsWithCertsFor2010是一個IQueryable<IEnumerable<Int>>.
東西是不正確那裏。多重。選擇()是造成IQueryable<IEnumerable<Int>>
所以我在尋找一種方法來消除。選擇(之一),並獲得
IQueryable<Int>
任何建議一回?謝謝!
解決方案: 一種解決方案張貼在下面的答覆。我在看到那個之前創建了另一個解決方案。在我的解決方案中,我開始在Contractors表中而不是Contacts表中刪除一個圖層和一個.Select()語句。
這就是我目前使用的。我過度思考一個相當簡單的解決方案。 – DenaliHardtail 2011-01-20 17:48:10