Linq 查询在 select 语句中给出了模糊的调用错误
Linq query gives me ambigious invocation error on the select statement
构建对 return 个处于等待状态且与特定实体相关的工作流的查询...
当我尝试在我的 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();
您似乎正在使用两个命名空间,它们实现了具有相同参数的 select 方法,因此它们不明确。
尝试使用整个命名空间
var a = System.Linq.Select(source);
或命名空间的别名
using LINQ = System.Linq;
...
var a = LINQ.Linq.Select(source);
问题似乎是,找到了两个 Select 方法。
一个在 Queryable 中(接受从 IQueryable<> 派生的 class),一个在 Enumerable 中(接受从 IEnumerable<> 派生的 class)。
您的 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 })
构建对 return 个处于等待状态且与特定实体相关的工作流的查询...
当我尝试在我的 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();
您似乎正在使用两个命名空间,它们实现了具有相同参数的 select 方法,因此它们不明确。 尝试使用整个命名空间
var a = System.Linq.Select(source);
或命名空间的别名
using LINQ = System.Linq;
...
var a = LINQ.Linq.Select(source);
问题似乎是,找到了两个 Select 方法。 一个在 Queryable 中(接受从 IQueryable<> 派生的 class),一个在 Enumerable 中(接受从 IEnumerable<> 派生的 class)。
您的 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 })