我有一个名为source的表,它具有多个派生表,例如account等。我还有另一个表,该表具有该表的导航属性,称为Source。

我想做的是按Source的类型过滤ActionItemState的结果,然后根据该继承表的属性进行过滤。

这是我正在尝试做的一个例子。当我尝试下面的代码时,出现“。LINQ to Entities仅支持强制转换EDM基本类型或枚举类型”。有人知道使用OfType或类似方式的方法吗?

 query = from a in _actionItemRepository.GetTable()
         where a.ActionItemStates.Any(ais => ais.Source is AccountSource && ((AccountSource)ais.Source).AccountId == id)
         select a;

最佳答案

尝试用另一种方式:

var accountSources = db.Sources.OfType<AccountSource>();
var actionItemStates = accountSources.SelectMany(a => a.ActionItemStates);

10-06 15:43