解決Entity Framework中大資料模型問題的技巧

來源:互聯網
上載者:User

Entity Framework的開發領導Srikanth Mandadi稱這個包含兩部分內容的文章為“解決Entity Framework中的大資料模型問題”,但很明顯它的含義為“使用一些技巧”來解決這些問題。該文章首先談到了無論對任何應用來說,期望的實體數量在50到100之間。超出這個範圍會導致編輯器無法使用。

Entity Framework有一些嚴重的效能問題。例如,每次使用一個新的連接字串時,針對整個資料模型的基於XML的中繼資料都會被載入到記憶體中。如果你有一些共用通用資料模型的小型應用,那麼向其中任何一個增加新的實體都會導致所有應用變慢。從本質上來說,這種限制使得我們無法將Entity Framework的資料模型放到共用庫中。

視圖的產生是Entity Framework設計上的另一個敗筆之處。Srikanth Mandadi解釋到:

當查詢或是SaveChanges第一次發生時,這個過程就開始了。檢視窗產生步驟的效能不僅取決於模型的大小,還與模型之間的聯絡有關。如果兩個實體通過一個繼承鏈或是Association串連起來,我們就稱其為串連的。與此類似,如果兩張表通過一個外鍵串連起來,我們也稱其為串連的。隨著實體和Schema中表的串連數量的增長,檢視窗產生的代價就越來越大了。

為瞭解決這些問題,Srikanth Mandadi建議將大的資料模型劃分為小的子集。有兩種方式可以做到這一點,但感覺都不怎麼樣。

第一種僅僅是使用完全獨立的子集。如果兩個或多個子集都需要某張表,那麼就為他們分別建立獨立的實體。這種方式導致跨子集的直接調用無法實現,也容易導致實體的過度膨脹。

另一種方式是“使用”Schema中的文法。IDE不支援這麼做,需要我們手工編輯XML以說明資料庫需要使用另一個資料模型中的實體。除了手工編輯XML的痛苦外,它只能建立單向的串連。如果資料模型A使用了資料模型B中的實體,那麼後者將無法引用前者。

你可以在ADO.NET團隊的部落格上閱讀該文章第一部分和第二部分的所有內容。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.