如何将Discriminator(__Disc__)字段用作条件时更改它

时间:2011-12-29 13:51:39

标签: c# entity-framework entity-framework-4 discriminator

我必须更新并更改表的Discriminator( _ Disc _ )字段,而映射的实体不将其作为实体成员。任何解决方案?

1 个答案:

答案 0 :(得分:3)

Discriminator列用于定义TPH继承中的实体类型,EF不能更改它 - 永远不会。它就像任何面向对象语言中的继承一样 - 一旦你定义了某种类型的对象你就无法使它成为不同的类型 - 你只能将它转换为父类,但它仍然是原始类型的实例。将其更改为不同类型的唯一方法是创建新类型的新实例,并以某种方式将值从第一个对象复制到新对象。

因此,如果您需要更改鉴别器,则必须在没有EF =的情况下使用旧的ADO.NET和SQL,但如果您的更改不遵循实体模型中的其他规则,您将破坏EF功能,您的应用程序将无法运行。