使用不同的子类更改/更新实体

时间:2013-11-25 17:13:32

标签: c# .net entity-framework ado.net

我有一个表Product,具体取决于字段Type的值(值:0,1或2)我希望(自动)使用EntityFramework 6实例化不同的子类。< / p>

所以在设计师(VS 2013,EF6)中,我制作了我想要的映射+子类。一个字段AdditionalPrice仅在其中一个子类中可用。这完美无瑕。我可以插入,删除甚至更新产品,无论它们是什么子类。

我更新如下:context.Entry(original).CurrentValues.SetValues(modified);其中original是未更改的实体对象,modified是具有不同值的新对象。

现在我遇到的问题是:当我的modified对象不再是同一个子类时(显然它仍然具有相同的基类,让我们说它是SpecialProductB并更改为SpecialProductA )它不会更新AdditionalPrice字段,也不会更改我为映射定义的字段type的值。

如何实现它会更新所有字段?我的意思是,对我来说很明显,它不适用于SetValues方法,方法本身表示它只会丢弃original字段所没有的字段。

Mapping and DB-Table (图片“大”:http://i.stack.imgur.com/XYGYK.png

0 个答案:

没有答案