簡體   English   中英

每個層次結構繼承的實體框架表

[英]Entity Framework Table per Hierarchy Inheritance

我正在嘗試使用我的一些數據庫表(例如Address實現每個層次結構繼承的表。 我想從Address派生3個類,這些類是EmployeeAddressCustomerAddressSupplierAddress

+-------------------+------------------------+
| Address           |> EmployeeAddress       |
+-------------------+------------------------+
| ID                | ..                     |
| OwnerID           | EmployeeID             |
| OwnerCategory     | (condition: where = 0) |
| Street_1          | ..                     |
| Street_2          | ..                     |
| City              | ..                     |
| Province          | ..                     | 
| PostalCode        | ..                     |
+-------------------+------------------------+
                    |> CustomerAddress       |
                    +------------------------+
                    | ..                     |
                    | EmployeeID             |
                    | (condition: where = 1) |
                    | ..                     |
                    | ..                     |
                    | ..                     |
                    | ..                     | 
                    | ..                     |
                    +------------------------+
                    |> SupplierAddress       |
                    +------------------------+
                    |  ..                    |
                    | EmployeeID             |
                    | (condition: where = 2) |
                    | ..                     |
                    | ..                     |
                    | ..                     |
                    | ..                     | 
                    | ..                     |
                    +------------------------+

問題是我一直在犯錯誤......

Address具體的 ,並包含OwnerCategory屬性時:

錯誤3032:從第178行開始映射片段時出現問題:映射條件成員'addresses.OwnerCategory',條件不是'IsNull = False'。 刪除addresses.OwnerCategory上的條件或從映射中刪除它。

Addressabstract並包含OwnerCategory屬性時:

從第178行開始映射片段的問題:映射了條件成員'addresses.OwnerCategory',其條件不是'IsNull = False'。 刪除addresses.OwnerCategory上的條件或從映射中刪除它。

Address具體的 ,並且包含OwnerCategory屬性時:

'DtcInvoicer.Database.Address'不包含'OwnerCategory'的定義,並且沒有可以找到接受類型'DtcInvoicer.Database.Address'的第一個參數的擴展方法'OwnerCategory'(您是否缺少using指令或程序集引用?)

從第177,195行開始映射片段的問題:EntityTypes Model.Address,Model.EmployeeAddress被映射到表地址中的相同行。 映射條件可用於區分這些類型映射到的行。

(我已經設置了條件(當OwnerCategory = 0時)

Address抽象的並且包含OwnerCategory屬性時:

'DtcInvoicer.Database.Address'不包含'OwnerCategory'的定義,並且沒有可以找到接受類型'DtcInvoicer.Database.Address'的第一個參數的擴展方法'OwnerCategory'(您是否缺少using指令或程序集引用?)

任何幫助表示贊賞,提前謝謝。

由於您在繼承的條件中使用OwnerCategory ,因此無法將其映射到屬性。 看起來你也應該將Address設置為abstract。 確保從模型中刪除該屬性並修改使用它的任何代碼。 當編譯器找不到特定成員時,您提到的非映射錯誤似乎是標准錯誤,因此請務必修復這些錯誤。

暫無
暫無

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

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