簡體   English   中英

共享列名的每個層次結構的代碼第一表錯誤

[英]Code First Table Per Hierarchy error with shared column names

我有3個從抽象類繼承的類,所有這些類均使用Table Per Hierarchy方法由數據庫中的一個表表示。

有一個名為'foo'的屬性由兩個具體的類共享,但第三個不共享,因此它不包含在抽象類中。

代碼優先遷移嘗試為共享的“ foo”屬性創建兩列,即使它們在各自的類中都被命名為“ foo”,也將它們分別稱為“ foo”和“ foo1”。 我編輯了遷移以刪除“ foo1”,以便在數據庫中僅創建一個名為“ foo”的列。

我可以毫無問題地創建包含“ foo”屬性的類的實例。 但是,當我嘗試將它們保存並持久保存到數據庫時,即使在項目中的任何地方都沒有提及“ foo1”,也會收到一條錯誤消息:“ Invalid column name foo1”。 就像實體框架仍然堅持要執行遷移最初具有的任何邏輯,即使我在運行遷移和創建表之前進行了更改。

所以我的問題是,如何在具體類中有兩個相同的列,而它們的父類沒有共享這些列,而在數據庫表中只用一列來表示呢?

這是通過使用POCO中的Column注釋解決的

[Column("foo")]
public string foo { get; set; }

暫無
暫無

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

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