匿名型でグループを作成し、プロジェクションを介してオブジェクトを選択する特定の LINQ クエリがあります。オブジェクトを選択すると、クエリは正常に機能します。オブジェクトに投影されるすべてのプロパティを含む DTO に入るクエリの使用法を変更しようとしていますが、型をオブジェクトから 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.