【发布时间】:2014-08-05 14:54:39
【问题描述】:
我有一个带有类型参数 T 的泛型方法,其中 T 是 EF 模型中的实体类型。 我需要获取此类型中标识字段的名称。 看到这篇文章:Is there a way to get entity id-field's name by reflection or whatever? 但是我不明白 Tevin 在谈到 EntitySetBase 和 EntityTypeBase 类型时在说什么。 如果 EntityTypeBase 是模型中实体之一的类型,则 EF6 没有属性 KeyMembers。
【问题讨论】:
-
@YuliamChandra 感谢您的回复。因此,KeyMembers 从上下文中获取,据我了解,代码创建了使用一些系统资源的实体集。还有其他方法可以通过反射获取键字段名称吗?
-
不是纯反射,需要先用edm获取key名,后面有说明,因为key属性可以通过convention和Fluent Api配置为key field ,我们不能仅通过反射得到
-
反正所有数据都在DbContext中。除了使用 CreateObjectSet
() 方法创建 ObjectSet 之外,没有其他方法可以获取键名吗???
标签: c# entity-framework reflection entity-framework-6