2011-11-03 38 views
0

我遇到了EF 4.1的問題。我正試圖添加一個分離的對象到DbContext。問題是它不是emd映射的對象,而是從它派生出來的。更改映射不是一種選擇,因爲有些團隊正在使用具有常規映射BL類的模型,但是我的項目爲UI材料創建了派生模型。即使是鑄造我總是收到一個實體框架4.1在派生類拋出時設置EntityState異常

InvalidOperationException ("Mapping and metadata information could not be found for EntityType ..."). 

我要的是EF對待這個基類,並把對象變成了BaseClass的的DbSet。目前EF代碼:

Context.Entry(object).State = EntityState.Added 

但我打開其他建議,通過IObjectContextAdapter甚至
,只要它可以保存基地和超類型。這應該很簡單,對吧?!映射到新的基類實例並不好,因爲主對象臨時Id在保存後不會更新...

謝謝!

回答

0

因爲我知道這是不可能的。你不能使用實體的派生類而不是實體。您還必須映射派生類,或爲持久性創建實體的新實例,並將派生類實例中的所有字段複製到實體實例。

+0

感謝您的快速回答。你回答了另一個問題([link](http://stackoverflow.com/questions/6580203/entity-framework-4-1-how-to-update-insert-and-delete-data-in-derived-classes))它聽起來像派生類可以使用。 POCO/Detached /無論這是不是真的? 非常感謝您的時間! – Gope

+0

是否有可能重寫當前映射?使用POCO而不是CodeFirst。 – Gope

+0

但是在那個相關的答案中,我期望派生類被映射=它們是實體。 –

相關問題