簡體   English   中英

使用帶有自定義子類的實體框架

[英]Using entity framework with custom subclasses

我正在使用 C# 實體框架將數據映射到項目的 sql server。 我試圖找到一種方法來使用實體框架自動生成基於鑒別器字段的自定義子類,同時不需要子類實體具有表。

例子:

在實體框架中,我有一個具有字段type的對象A 我也有以下

public class B : A {
}

public class C : A {
}

我正在尋找一種方法讓實體框架識別type字段是例如B ,然后創建B類的實例。 這些類沒有需要持久保存到數據庫的數據。 它們只是不同表中行的包裝器。

例子:

我有一個項目對象表。 每個項目對象都有一個項目設置集合和一個項目類型字段。

有不同類型的項目(Text、Radio、Checkbox),它們都使用抽象的render()方法以不同的方式render() 這些子類型中的每一個還具有該對象所需的特定項目設置集。

如果我可以創建實體子類而不必將它們映射到數據庫,我可以讓 TextItem 成為 Item 的子類,實現我的render()方法和映射到我的項目設置表中每個值的添加屬性。 然后,當我從數據庫中提取一個新項目時,基於類型字段,它將根據鑒別器自動創建我的特定類。

我已經使用 DBML 完成了這種事情。 我想使用實體框架,因為它更強大,但可能沒有辦法做我正在尋找的東西。

這稱為 Table-per-hierarchy mapping, EDMXcode first 都可以 要真正使其工作,您的子類必須被映射,因為 EF 必須知道它們的存在才能正確地將鑒別器值轉換為正確的類型。 整個類層次結構映射到單個數據庫表。

暫無
暫無

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

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