2011-03-22 38 views
2

我有一個小型數據庫,它會保持很小。它是一個asp.net 4.0網站。 它在表格數量和條目數量方面都很小。 也是用於內部管理,所以很少用戶會使用它。EntityFramework - 是否有可能將整個上下文數據庫加載到內存?

有沒有辦法在一次調用中加載所有內容?而不是調用context.Orders.ToList(),context.Customers.ToList()等。

此外,如果這樣的選項存在,它是否也加載所有的實體引用?

我知道這是一個奇怪的要求,但我認爲在我的情況下,它將在返回數據方面效率更高。

感謝, Itye

回答

0

據我所知,沒有這樣的功能存在。您必須手動調用每個實體集上的ToList()或ToArray()。

走這條路似乎不是一個好主意給我。如果你的數據庫很小,那麼一切都會很快,所以我建議只按照預期使用實體框架。如果你真的想要一次加載所有的數據,也許你應該使用文件而不是數據庫?

0

你將不得不明確加載它;我還沒有聽說過一個將整個上下文加載到內存中的進程,因爲在大多數情況下不起作用。加載所有實體引用/集合需要調用Include。

1

不,沒有命令可以將所有內容加載到內存中。您可以從一些實體入手,並使用Include方法來定義加載實體,但您無法在沒有關係的情況下加載實體。

此外整個這種方法聞起來。你爲什麼想這樣做?你提到了ASP.NET標籤,所以你似乎想要在客戶端之間共享加載的數據?如果您的應用程序不是隻讀的,那將是very bad idea。所有併發請求中的一個上下文與共享「事務」相同。

ObjectContext應該只能服務於單個工作單元。在大多數情況下,這意味着Web應用程序中的單個HTTP請求

相關問題