c# - 从 Entity Framework 中的实体获取鉴别器值

标签 c# entity-framework database-metadata

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

即当鉴别器为 0 时,类型为 Dog , 如果它是 1 它是 Cat等等

现在我想将一些用于(批量)更新的代码从 EF 移动到自定义 ExecuteSqlCommand .

问题: 是否可以通过 MetadataWorkspace 从类型中提取鉴别器值还是通过其他方式?

我正在寻找类似 GetDiscriminatorValue<Cat>("ColumnName") 的内容

如果不可能:是否有另一种方法,这样我就不必在我的代码中的某个地方硬编码这些值?

谢谢,

最佳答案

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

关于c# - 从 Entity Framework 中的实体获取鉴别器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16971388/

相关文章:

java - JDBC 与 Spring 慢元数据获取 Oracle

c# - IQueryable 表达式翻译

c# - 如何从 Task.Factory.StartNew<> 获取结果?

c# - 删除特定列 RadGrid MVVM 的格式

c# - 使用 Unity 动态注册接口(interface)的多个实现(来自 AutoMapper 的 IValueResolver

entity-framework - 无法先使用 Entity Framework 4.1 代码更改连接字符串

c# - WCF 查询拦截器 : Is this MSDN sample a security risk?

java - 使用 DatabaseMetaData 检索 mysql 表注释

mysql - 如何在 sailsjs 上获取 mysql 表的元数据

c# - 使用c#检查excel中的分组行