我有一个特定的 LINQ 查询,它按匿名类型进行分组,然后通过投影选择对象。选择对象时,查询工作正常。我现在正在尝试更改查询的用法以进入包含投影到对象的所有属性的 DTO,但是当我将类型从 Object 切换到 DTO 时,查询开始给我一个错误,即IQueryable.Select 具有无效参数。
IQueryable<type> result = from o in blah where some_conditions
orderby o.Name
group o by new {o.Value1, o.Value2, o.Value3} into groupedO
select new type
{
Value1=groupedO.Key.value1,
Value2=groupedO.Key.value2,
Value3=groupedO.Key.value3
}
当“类型”是我的原始对象时工作正常,但当我将其设为具有属性 Value1、Value2 和 Value3(适当类型)的 DTO 时会失败。
我意识到这可能不足以找到问题的信息,但我也接受任何关于寻找可能导致问题的方向的指示。我不知道可能有什么不同。此外,如果我删除组,查询工作正常,所以它是特定于组中的匿名类型的。
确切的错误是
System.Linq.IQueryable<System.Linq.IGrouping<AnonymousType#1,someDalClass>>' does not contain a definition for 'Select' and the best extension method overload 'System.Linq.Enumerable.Select<TSource,TResult>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,TResult>)' has some invalid arguments.