我创建了TPH代码优先tmodel并在所需的鉴别器列上添加了NotMappedAttribute.我可以将DbSets添加到我的上下文中,用于子类和查询这些类型的集合,代码优先仍然是我的朋友.
但是,假设我有一个实体,它本身包含一个BaseType集合,其中一些可能是一种类型,另一种类型.如何编写查询以获取键入的记录?顺便说一下,我不希望在延迟加载的内存集合中使用它.
假设一个名为Association的类和一些子类AssocA和AssocB,它们都映射到Associations表并在AssocationTypeId上进行区分.现在假设你有一个实体 - 为了论证而称之为Employee.所以举个例子
class Employee
{
public virtual Collection<Associations> MyAssociations {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
现在我想查询数据库以查找AssocA =?的员工.我不希望任何关联等于?但特定类型的关联.我无法使用GetType,因为LinqToEntities无法使用它.我不能使用AttributeTypeId,因为它在代码中首先使用了映射.
我错过了什么?我在做什么是合理的.但我不能模仿它.