簡體   English   中英

實體框架 - 通過拆分使大型edmx表更易於管理?

[英]Entity Framework - making a large edmx table more manageable by splitting?

我認為這是一個關於皮膚貓的最佳技術或最佳方法的問題!

想象一下菜單上有項目(菜單選項)。 我有一個名為MenuItem的表,例如“Spaghetti Bolognese”,除了更好的描述和圖片之外,它還有許多與之相關的其他信息。 例如。

  • 基本信息(名稱,描述,圖片等)
  • 營養信息(約15列)
  • 過敏信息(約16列)
  • 膳食信息(另外7列)(宗教等)

因為現在我把它全部放在SQL服務器的一個表中,這對我來說是邏輯數據庫設計,因為它不重復,盡管它使表的字段列表比我想要的更長。 關於不斷擴展數據庫表,我已經感覺有點不好了。 但現在我們還要添加“食譜”信息,大約另外7列。

我正在使用Entity Framework 4.latest,並且覺得有可能幫助我在EDMX中拆分它的功能? (那是ComplexTypes的嗎?)或者我只需要在我調用的ViewModel類中執行此操作?

我認為我在我的代碼中使用后更好地隔離事物就像是

  • MenuItem.Recipe.Ingredients
  • MenuItem.Nutrition.Fat
  • 等等

復雜類型可以幫助您,但要注意復雜類型不能包含導航屬性,不能為null並始終使用實體加載。 其他可能性是使用表拆分 - 這將允許您將多個一對一相關實體映射到同一個表。 表拆分的主要特點是:

  • 實體只能共享主鍵屬性
  • 有一個主要實體,其他被視為關系(導航屬性)
  • 相關實體必須存在 - 它們不是可選的,因此當您插入新的主實體時,您必須插入這些相關實體,即使它們是空的
  • 必須使用急切,懶惰或顯式加載來加載相關實體

暫無
暫無

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

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