2

我在應用程序啓動時在應用程序中進行緩存我預先從數據庫中提取數百萬行數據並將其插入本地緩存中。爲查詢禁用EF對象圖

我的問題是,當我通過EF加載所有這些數據時,獲取操作期間,對象圖變得非常龐大(大約4GB,只要我處理上下文就會消失)。我希望能夠告訴EF不要跟蹤此查詢範圍內(或上下文的生命週期)內的任何對象,以便我的應用程序不會耗盡內存。

有沒有很好的方法來做到這一點?

回答

3

可以使用AsNoTracking方法

var entities = dbContext.MyEntities.Where(/**/).AsNoTracking(); 
+1

真棒,完美的作品,也降低了查詢時間以及:) – 2012-02-23 00:50:19

+1

@LukeMcGregor是拍攝快照,需要相當長的時間。這避免了它。 – Eranga 2012-02-23 01:03:41

+0

給我的新消息,thx @Eranga – 2012-05-23 09:11:15