我先使用实体框架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