我有一个名为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;
答案 0 :(得分:1)
您可以使用此代码
Source.OfType<AccountSource>()
您在Where运算符
之前申请 OfType<AccountSource>().Where(....)
答案 1 :(得分:1)
尝试用其他方式:
var accountSources = db.Sources.OfType<AccountSource>();
var actionItemStates = accountSources.SelectMany(a => a.ActionItemStates);