3

我有一个名为 source 的表,该表具有多个派生表,例如帐户等。我有第二个表,该表具有该表的导航属性,称为 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;

在此处输入图像描述

4

2 回答 2

2

Try going the other way with it:

var accountSources = db.Sources.OfType<AccountSource>();
var actionItemStates = accountSources.SelectMany(a => a.ActionItemStates);
于 2012-10-09T17:35:08.447 回答
1

You can use this code

Source.OfType<AccountSource>()

You apply before Where operator

 OfType<AccountSource>().Where(....)
于 2012-10-09T17:34:18.260 回答