0
我想執行的EF5下面的查詢:實體框架檢查集合包含項目
var data = from adi in _repo.AccountingDocumentItems
from e in adi.Employees
let c = adi.Employees.Count()
where
(adi.AccountingDocument.DocumentDate >= start && adi.AccountingDocument.DocumentDate <= queryEnd) &&
(c > 0) &&
(_repo.AccountingEntries.Count(p => p.AccountingDocumentId == adi.AccountingDocumentId) != 0))
被打破是在where子句中的最後一行,我嘗試檢查一個AccountingEntries的部分存在與AccountingDocumentItem的AccountingDocumentId鏈接的項目。我收到一個錯誤:
「無法創建類型爲'AppName.Domain.Entities.AccountingEntry'的常量值。在此上下文中僅支持基本類型或枚舉類型。」
我不明白爲什麼會發生這種情況,因爲我特別選擇了這些項目的計數。我也嘗試了以下結果:
_repo.AccountingEntries.Any(x => x.AccountingDocumentId == adi.AccountingDocumentId)
任何輸入將不勝感激。
Gary。
嗨拉斐爾,謝謝,上述肯定的作品,但表現明智,它不適合作爲我的AccountingEntries表可能會遇到成千上萬。我沒有用Profiler檢查過,但我認爲它會從AccountingEntries表中返回所有AccountingDocumentId字段。 – Gary
@加里當然會......我在編輯中給了一個替代方案。 –
嗨拉斐爾,再次感謝,加入肯定會工作。我試圖根據一個名爲'ReceiptMustExist'的布爾字段來動態地過濾查詢,這就是爲什麼我沒有首先進入連接路由的原因,但是我總是可以根據需要在沒有連接的情況下運行不同的查詢。謝謝。 – Gary