我有一个表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
字段所没有的字段。