簡體   English   中英

.Net核心中的動態模型

[英]Dynamic models in .Net core

.Net核心2.1。

Asset Table -> Id, Name, Path, AssetType(Enum -> user, company), ParentEntityId

我有資產表,其中包含多個其他表(例如,用戶,公司,部門)的媒體文件。 由於資產對於所有實體都保持完全相同,因此合理的做法是創建一次並動態定義關系。 因此,實體基於AssetType和ParentEntityId,這意味着它無法定義為獲取子實體和使用等,包括與user.Asset不會工作,默認功能關系是牽強。

所以我的問題是

  • .Net核心是否提供任何開箱即用的方式來處理動態實體加載。
  • 如果不是,那么處理這種情況的最佳方法是什么。

用戶擁有圖像或文檔,公司也可以使用。 在這樣設計表之前。

User -> UserAsset
Company -> CompanyAsset

而UserAsset和CompanyAsset兩者都是具有外鍵差異的副本,因為UserAsset具有UserId,而CompanyAsset具有CompanyId。 越來越多的實體將具有相同的資產需求。 如果繼續相同的路徑,將有7個資產表,它們的數據完全相同,只有Foregin Key的差異。 因此,我想是否可以將它們合並在一起以避免出現多個表。 這就是為什么擁有單個資產表更有意義的原因。

由於資產對於所有實體都保持完全相同,因此合理的做法是創建一次並動態定義關系。

啊...不 我不知道是誰設計了您的數據庫,但這是錯誤的。 期。 那不是針對任何形式的規范化的數據庫設計。 它在要關聯的實體之間沒有外鍵。

您應該有一個資產表。 那有一個AssetId主鍵。

如果您希望公司與資產建立連接,則它可以具有AssetId字段外鍵(如果它具有0-1資產),也可以具有另一個具有CompanyId和AssetId作為外鍵的表(如果它具有0-n資產)甚至一個資產可以屬於多個公司的nm)。 如果用戶也有資產,則可以像創建公司表一樣創建用戶表,並引用相同的資產表。

通過適當的數據庫設計,實體框架將按需工作。

暫無
暫無

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

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