2012-10-20 22 views
1

我在一張桌子〜43K行這樣做:EF5。當地性能

MyDbContext.Stores.Load(); 
MyDbContext.Stores.Local.Count.Dump(); //horrible performance! 

我可以通過第一指令觸發了select語句獲取所有行探查見。實際上,第二條指令返回正確的值,但經過〜12秒後,並不是我期待的所有數據都應該在內存中。 在Entity Framework中使用.Local會出現什麼問題(或其真正目的是什麼)?

回答

0

我認爲你應該這樣做:

var stores = MyDbContext.Stores.ToList(); 

// stores is in memory after executing .ToList() 
var count = stores.Count(); 

DbSet.Local Property

這個屬性返回一個包含所有 不變目前由 上下文用於跟蹤一個ObservableCollection,修改和添加對象給定的DbSet。返回的可觀察集合 保持與底層DbSet集合和 上下文的內容同步。這意味着您可以修改可觀察集合 或向底層DbSet集合添加/刪除實體(該 包括通過執行查詢添加實體),並且兩個集合 都將被同步。

此屬性通常用於數據綁定應用程序。