如何使用Linq在EF Code中首选OFTYPE?

Mat*_*int 1 linq-to-entities entity-framework ef-code-first

使用传统的Entity Framework并使用ESQL查询时,只能使用OFTYPE来返回基类型.

请参阅:http: //msdn.microsoft.com/en-us/library/bb399295.aspx

在实体框架代码首先,我有继承设置,其中B是A的子类型.执行MyContext.Set<A>().OfType<A>()仍然返回类型B的元素.理想情况下,我想调用MyContext.Set<A>().OfOnlyType<A>()它,它将转换为与使用ESQL的OFTYPE时相同的方式.

我还发现我可以is在where语句中使用运算符,但同样会返回A和B实体.

如何编写一个只过滤到A类元素的linq表达式?

Lad*_*nka 5

除非您以某种方式从结果集中排除派生实例,否则A无法ONLY在Linq到实体中直接获取实例(等效于实例).例如:

var list = MyContext.Set<A>().Where(a => !(a is B)).ToList();
Run Code Online (Sandbox Code Playgroud)