我使用EF5和Code-First。轉換實體框架中的類
我有一個叫做FooBase的抽象基類。 Foo1和Foo2都從FooBase繼承。我使用基於名爲Bar的Discriminator的EF映射配置。因此,如果Bar = someValue,則創建Foo1 ...如果Bar是另一個值,則創建Foo2。
由於Bar是一個鑑別器,我沒有訪問它作爲任何Foo類的屬性。
我現在有必要將Foo1的實例轉換爲Foo2。我使用反射並將合適的屬性移動到新實例,包括Foo1的關鍵值。這是一個確切的副本,除了它是一個不同的類型。我更改EntityState進行修改並保存到數據庫。
但是,數據庫中的鑑別器值沒有得到更新。它仍然保持與Foo1一樣的價值。
我可以猜測,因爲enitity只設置爲修改,EF不會檢查鑑別器。
有沒有人知道解決這個問題的方法?