シーケンス演算子 (LINQ to SQL)
一般的には、LINQ to SQL では、次のいずれかの性質を持つシーケンス演算子はサポートされません。
Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) |
Enumerable.Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>) |
Enumerable.Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>) |
Enumerable.TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) |
Enumerable.TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) |
Enumerable.SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) |
Enumerable.SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) |
Enumerable.GroupBy<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>) |
Enumerable.GroupBy<TSource, TKey, TElement, TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>) |
Enumerable.Reverse<TSource>(IEnumerable<TSource>) |
Enumerable.DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Enumerable.ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Enumerable.ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
Enumerable.Range(Int32, Int32) |
Enumerable.Repeat<TResult>(TResult, Int32) |
Enumerable.Empty<TResult>() |
Enumerable.Contains<TSource>(IEnumerable<TSource>, TSource) |
Enumerable.Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) |
Enumerable.Aggregate<TSource, TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>) |
Enumerable.Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) |
Enumerable.SequenceEqual |
.NET との相違
サポートされるすべてのシーケンス演算子は、Average を除いて、共通言語ランタイム (CLR) で正常に動作します。 Average は、平均化される型と同じ型の値を返しますが、CLR での Average は、常に Double または Decimal を返します。 ソース引数が明示的に double / decimal にキャストされている場合、または、セレクターが double / decimal にキャストする場合、作成される SQL でもこのような変換が行われるため、結果に問題はありません。
参照
その他の技術情報
データ型と関数 (LINQ to SQL)