簡體   English   中英

實體框架的關聯繼承

[英]Association inheritance with Entity Framework

考慮一下我下面的數據庫模型。

  • UserTable(ID,用戶名)
  • TextContentTable(Id,名稱,描述,CreatedByUserId,ModifiedByUserId,TextContent)
  • ImageContentTable(Id,名稱,描述,CreatedByUserId,ModifiedByUserId,ImageContent)

我想創建以下對象模型。 但是有可能嗎? 例如:

  • BaseEntity(Id)
  • DescriptiveEntity(名稱,描述):BaseEntity
  • TrackedEntityCreatedByModifiedBy ):描述性實體
  • 用戶(用戶名):BaseEntity
  • TextContent(Text):TrackedEntity
  • ImageContent(Image):TrackedEntity

我希望您理解我的表示法,但是可以將關聯(以粗體標記)映射到單個表TextContentTable和ImageContentTable嗎?

提前感謝。

我不確定這種方法是否適用於當前發布的Entity Framework版本。 當諸如TextContent之類的類型繼承自諸如BaseEntity的類型時,它必須具有與基本類型相同的實體集。 使用問題中概述的策略,應用程序中的所有實體都將具有相同的實體集。 我不確定那不是您想要的。

但是,您可以通過接口獲得幾乎相同的效果。 例如,您可能有一個接口IEntity,它公開了id屬性。 另一個接口ITrackedEntity可以公開CreatedBy和ModifiedBy。 等等。

這並不理想,但對我們目前而言已經足夠了。 我們實際上是通過T4模板使用codegen來實現這些。

實體框架的下一個版本可能具有一些特性,這些特性使該繼承模式更易於實現,而無需單個實體集。

暫無
暫無

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

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