我是新來的實體框架。這是我第一個使用它的項目。如何使用EF5填充擴展方法並返回IQueryable(無循環)
我創建了一個新類,它使用新屬性擴展我的「商人」實體,這些新屬性大多數是總計。我無法弄清楚用數據填充這些新屬性的最佳方式。我使用breeze.js來查詢一個iQueryable端點,所以我需要保持這個功能不變。
我發現了以下解決方案,但速度很慢,因爲我必須遍歷每條記錄。儘管我已經在微風中實現了分頁,但循環仍然會觸及每一條記錄,儘管它只返回一頁。我想這就是實體框架的工作原理。我的問題是我如何填充擴展屬性沒有循環?
這是我的代碼,但它很慢。我可以消除這個循環並用值填充該擴展屬性嗎?
[HttpGet]
public IQueryable<Merchant> MerchantList()
{
IQueryable<Merchant> items = _repo.Context.Merchants;
foreach (var item in items)
{
// Total Stores
item.TotalStores = myMethod(item.MerchantUID);
}
return items;
}
您正在尋找'Include'方法。 –
我真的很感謝答覆。我正在研究這個Include方法,它似乎用於「加載」通常導致連接的相關實體。我並沒有真正瞭解這將如何幫助我將數據加載到擴展屬性並避免循環。如果你有時間可以請詳細說明一下嗎? – user2341148
什麼是「myMethod」在做什麼?根據您傳入的內容,是否可以使用Merchant類中的其他屬性來填充TotalStores? – cbeckner