从实体框架中的实体获取鉴别器值

时间:2013-06-06 20:17:09

标签: c# entity-framework database-metadata

我在Entity Framework中设置了一个TPH(每个层次结构表),我在其中使用一个名为Discriminator的列来分隔不同的EntityTypes。

即。当Discriminator为0时,类型为Dog,如果为1则为Cat

现在我想将一些代码(大量) - 更新从EF转移到自定义ExecuteSqlCommand

问题: 是否可以通过MetadataWorkspace或其他方式从Type中提取Discriminator值?

我正在找GetDiscriminatorValue<Cat>("ColumnName")

之类的东西

如果不可能:还有其他方法,所以我不必在代码中的某处硬编码这些值吗?

谢谢,

1 个答案:

答案 0 :(得分:3)

我还没有尝试,但似乎你可以使用反射和MetadataWorkSpace获取值(和其他非公共属性)。看一下这个例子:http://blog.cincura.net/231942-tph-mapping-discriminator-condition-from-metadataworkspace/