2012-04-24 158 views
1

我有2個項目,一個處理數據訪問,它使用實體框架和POCO對象來完成它。和DAL Project訪問數據庫的第二個項目引用。實體框架中的POCO繼承

在我的第二個項目中,我需要從一個POCO類繼承併爲一些屬性和其他東西提供一些默認值,最後我想將此類或「其基類」添加到實體的對象上下文中框架。

但每次我這樣做,我得到的是說,一個例外,「映射和元數​​據信息無法發現的EntityType‘MyInheritedClass’」

反正是有解決這個不使用局部類,或編輯項目具有數據訪問層。

謝謝

回答

1

不幸的是沒有。如果未映射EF的當前版本,則無法與派生類一起使用。如果映射類,則必須使用該類類型進行數據檢索和持久化 - EF永遠不會獲得非映射派生類型的實例,並且也不會接受派生類型,因爲EF不知道類型。

如果你想使用派生類,你必須直接在數據訪問庫中定義它,並且該類必須是映射繼承的一部分(在這種情況下,繼承將反映在數據庫中)。否則,請不要使用繼承的類,並將所有附加的屬性和邏輯直接移動到原始POCO(這是所謂的使用)。

+0

感謝您的直接答案。你知道EF的即將到來的版本會支持嗎? – 2012-04-24 10:40:35

+0

不,我現在不支持,並且我認爲沒有理由支持它。我不認爲這可以用於數據檢索,並且如果您無法檢索自定義派生類型,那麼保留自定義派生類型沒有太大用處。 – 2012-04-24 10:42:14