dbcontext api似乎將導航屬性設置爲ICollections(對於關聯的*端)。正常的方式來獲得可查詢的對象(如,如果你想要一個計數)似乎是默認情況下,如何讓數據庫中的實體框架導航屬性查詢過濾器?
int count = dbcontext.Entry(entry).Collection(c => c.navprop).Query().Count();
,但如果你想在DB經常篩選不方便。更重要的是,它也容易忘記。如果有人不小心說
int count = entry.navprop.Count();
那麼它得到的所有數據的服務器上,確實有計數,這是緩慢的。
對於ObjectContext默認使用的EntityCollection類型也是如此。
int count = entry.navprop.CreateSourceQuery().Count();
有沒有辦法在模型中設置或其他地方,對於一個導航屬性的默認集合類型爲IQueryable或的ObjectQuery或某種查詢類型的?
注意這僅僅是用於導航性能在上下文中的實際對象集和dbset項的問題似乎是可查詢的
沒有人知道如果CreateSourceQuery足夠慢,它應該有一個私人成員的第一次調用getter時設置的私人成員,並在隨後的調用中使用,而不是每次調用CreateSourceQuery? – bdwain 2013-03-28 18:24:39