自我跟踪实体和缺乏实体继承

时间:2012-07-10 04:30:29

标签: entity-framework self-tracking-entities

我的琐碎的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可以处理每种类型的表吗?当然可以吗?是什么给了什么?

1 个答案:

答案 0 :(得分:2)

这是正确的行为。只有基类型才会得到ObjectSet,此集也用于访问所有继承的类型。如果您只想获得UserEntity个实例,则会使用.OfType<UserEntity>()扩展方法等