我在实体框架中设置了一个TPH(每个层次的表),在其中使用了名为Discriminator
的列来分隔不同的EntityType。
即当Discriminator为0时,类型为Dog
,如果为1,则为Cat
,依此类推
现在,我想将一些用于(质量)更新的代码从EF移动到自定义ExecuteSqlCommand
。
题:
是否可以通过MetadataWorkspace
或通过其他方式从Type中提取Discriminator值?
我正在寻找类似GetDiscriminatorValue<Cat>("ColumnName")
的东西
如果不可能:还有另一种方法,这样我就不必在代码中的某些地方对这些值进行硬编码了吗?
谢谢,
最佳答案
我还没有尝试过,但是看来您可以使用反射和MetadataWorkSpace获取值(以及其他非公共属性)。看一下这个例子:http://blog.cincura.net/231942-tph-mapping-discriminator-condition-from-metadataworkspace/