我在Entity Framework中设置了一个TPH(每个层次结构表),我在其中使用一个名为Discriminator
的列来分隔不同的EntityTypes。
即。当Discriminator为0时,类型为Dog
,如果为1则为Cat
等
现在我想将一些代码(大量) - 更新从EF转移到自定义ExecuteSqlCommand
。
问题:
是否可以通过MetadataWorkspace
或其他方式从Type中提取Discriminator值?
我正在找GetDiscriminatorValue<Cat>("ColumnName")
如果不可能:还有其他方法,所以我不必在代码中的某处硬编码这些值吗?
谢谢,
答案 0 :(得分:3)
我还没有尝试,但似乎你可以使用反射和MetadataWorkSpace获取值(和其他非公共属性)。看一下这个例子:http://blog.cincura.net/231942-tph-mapping-discriminator-condition-from-metadataworkspace/