2012-10-31 34 views
0

我正在使用EF來實現搜索功能,以在網站上搜索汽車。它工作正常,但我想優化性能。 汽車有一個品牌和型號,和一些圖像。 使用.Include()包含make和model很容易,但是我遇到了圖像問題......目前正在執行主查詢,然後EF會爲每個搜索結果查詢數據庫以獲取圖像。我想在一個查詢中包含這一切。 我可以使用.Include(),但顯然加載所有圖像,而我實際上只想要一個(任何)圖像。有沒有辦法做到這一點?EF4.1熱切加載查詢

謝謝堆!

回答

0

您必須對圖像使用單獨的查詢。例如:

context.Configuration.LazyLoadingEnabled = false; 
var cars = context.Cars.Include(c => c.Model).Where(c => c.Type == "abc").ToList(); 
var images = context.Images.Where(i => i.Car.Type == "abc" && ...).ToList(); 

現在,如果你擁有了一切正確安裝EF應該解決汽車和圖像每節車廂之間的關係應該有它的導航屬性充滿了剛剛由第二查詢加載圖像的圖像。

+0

謝謝拉迪斯拉夫,但這不會運行每輛車的圖像查詢? – Andy

+0

如果使用該顯式查詢加載所有需要的圖像並關閉延遲加載,則不會爲每輛汽車運行查詢。 –

相關問題