构建查询以返回处于等待状态且与某个实体相关的工作流...
当我尝试在linq查询中编写select语句时,我在select语句中得到错误“Ambigious invocation”。我不确定它到底意味着什么。这是我的代码,任何人都有正确方向的提示或观点?
List<AsyncOperation> processes = (from p in orgSvcContext.AsyncOperationSet
where p.PrimaryEntityType == entityLogicalName
&& p.RegardingObjectId.Id == regardingObjectId
&& p.Name == processName
&& p.StatusCode.Value == 10
select new AsyncOperation { Id = p.Id, StateCode = p.StateCode, StatusCode = p.StatusCode })
.ToList();
答案 0 :(得分:2)
问题似乎是,找到了两个Select方法。 一个在Queryable中(接受一个派生自IQueryable&lt;&gt;的类)和一个在Enumerable中(接受一个派生自IEnumerable&lt;&gt;的类)。
您的orgSvcContext.AsyncOperationSet
似乎正在实现两个接口,这意味着编译器不知道选择哪一个。
您应该能够通过在orgSvcContext.AsyncOperationSet
上调用AsEnumerable或AsQueryable来解决您的问题,无论您最喜欢什么。
这应该是这样的(检查第一行的AsEnumerable):
(from p in orgSvcContext.AsyncOperationSet.AsEnumerable()
where p.PrimaryEntityType == entityLogicalName
&& p.RegardingObjectId.Id == regardingObjectId
&& p.Name == processName
&& p.StatusCode.Value == 10
select new AsyncOperation { Id = p.Id, StateCode = p.StateCode, StatusCode = p.StatusCode })
答案 1 :(得分:1)
您似乎正在使用两个名称空间来实现具有相同参数的select方法,因此它们不明确。 尝试使用整个命名空间
var a = System.Linq.Select(source);
或命名空间上的别名
using LINQ = System.Linq;
...
var a = LINQ.Linq.Select(source);