簡體   English   中英

為什么我的EF Code First預生成視圖無效?

[英]Why are my EF Code First pregenerated views having no effect?

我的上下文中有~300個DbSet,並且app加載后的第一個查詢(索引字段中的FirstOrDefault())需要大約40秒。

為了改善這一點,我試圖在EF 4.3.1 Code First中使用預生成的視圖,使用T4模板:

http://blog.3d-logic.com/2012/06/13/entity-framework-codefirst-view-generation-templates-on-visual-studio-code-gallery/

我編譯它,但我發現沒有性​​能差異。 我希望/假設它會幫助我正在經歷的痛苦的緩慢啟動,但沒有運氣。

它應該有幫助嗎? 如果不是,那么預生成的視圖究竟用於什么? 而且,我有什么辦法可以改善啟動時間嗎? 至少可以說,分割我的上下文是痛苦的。

像NHibernate和EF這樣的某些ORM啟動起來很慢。 而不是試圖“修復”這種緩慢,我喜歡通過確保IIS在應用程序池啟動時觸發此代碼來消除此問題。 為了解決此問題,您必須將IIS配置為自動啟動應用程序池。 此解決方案僅適用於.NET 4和IIS7.5及更高版本。

您希望使用IProcessHostPreloadClient實現一個類,該類通過向您的web.config添加serviceAutoStartProviders節點並為您的應用程序應用程序池設置startMode =“AlwaysRunning”來加載ObjectContext並配置您的應用程序以使用它。

有關詳細信息,請參閱Scott Gu的博客

事實證明,它實際上似乎在第一個被引用的實體所在的程序集中搜索預生成的視圖,而不是在DbContext所在的程序集中。 請在此處查看更多討論: http//blog.3d-logic.com/2012/06/13/entity-framework-codefirst-view-generation-templates-on-visual-studio-code-gallery/#comment-76

為了解決這個問題,我組建了一個新實體並將其放在上下文的程序集中,並將其列為第一個DbSet。 現在它撿起來,運作良好(除了這是荒謬的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM