我先使用實體框架6.x數據庫和SQL Azure數據庫。實體框架數據庫首先聚集列與渴望加載
我有一個數據庫表研究和一個單獨的表受訪者。在我的EF設計師中,我有一個研究實體和受訪者實體,而研究實體有一個受訪者導航屬性。每項研究都可以有數千名受訪者,並且有數百項研究。
我的問題是,我試圖在包含受訪者COUNT的研究表上創建一個計算列,我試圖加載這個值。我需要急切加載的原因是因爲我正在使用研究列表填充DataGrid(WPF),並且我的網格中的一列是RespondentCount。如果我不急於加載這個值,那麼當用戶滾動網格時,我的數據網格上的滾動會變得很糟糕,因爲RespondentCounts是延遲加載的。
我可以肯定渴望加載所有使用此語句受訪者:
ctx.Studies.Include(s => s.Respondents)
,然後做的受訪者導航屬性.Count之間的(),但是我會加載每個研究成千上萬的受訪者是巨大的性能和大量的內存浪費,因爲我需要的只是COUNT。
我真正需要的是:
ctx.Studies.Include(s => s.Respondents.Count)
但是,這是行不通的。
我試着設置一個數據庫視圖,其中包含一個簡單的計算字段爲RespondentCount的研究表,但在實體框架中只讀,並且當我帶上視圖時,我失去了研究表上的所有其他外鍵關係進入EF設計師。
我怎樣才能得到這個總值急切加載,而不必加載所有的受訪者?
太棒了!每天學些新東西。謝謝! – 2014-11-05 23:45:10