我的琐碎的EDMX有一个基本实体以及两个继承它的实体......
<>-------- UserEntity
EntityBase
<>-------- CustomEntity
...这会在生成的ObjectContext上自动创建三个ObjectSet属性...
public ObjectSet<EntityBase> EntityBases {...}
public ObjectSet<UserEntity> UserEntities {...}
public ObjectSet<CustomEntity> CustomEntities {...}
......这很棒。然后我可以在我的Linq To Entities中使用这三个中的任何一个。我实际上想要使用自我跟踪实体,因此将代码生成策略设置为无。然后添加自我跟踪T4模板。但新生成的ObjectContext只有以下内容......
public ObjectSet<CustomEntity> EntityBases {...}
...但UserEntities和CustomEntities的继承实体无处可见!自我跟踪实体T4可以处理每种类型的表吗?当然可以吗?是什么给了什么?
答案 0 :(得分:2)
这是正确的行为。只有基类型才会得到ObjectSet
,此集也用于访问所有继承的类型。如果您只想获得UserEntity
个实例,则会使用.OfType<UserEntity>()
扩展方法等