最初は、これはこの質問と重複していると思うかもしれませんが、そうではないことがわかるでしょう。
また、連続する行のグループを選択したいのですが、今回はエントリが電話番号であるため、文字列として保存されると考えてください。
私は次のようなものを試してきました:
var numbers = await (from a in context.Telephones
from b in context.Telephones
Convert.ToInt32(a.Number) < Convert.ToInt32(b.Number) &&
Convert.ToInt32(b.Number) < (Convert.ToInt32(a.Number) + numberQuantity)
group b by new { a.Number }
into myGroup
where myGroup.Count() + 1 == numberQuantity
select myGroup.Key.Number).ToListAsync();
しかし、これは失敗します:
LINQ to Entities はメソッド method を認識せず'Int32 ToInt32(System.String)'
、このメソッドをストア式に変換できません。
LINQ to Entities がサポートしていないことは理解していConvert.ToInt32
ますが、それを機能させるためのアイデアが不足しています。
したがって、私のデータベースに次のものがある場合:
2063717608
2063717609
2063717610
2063717611
2063717613
2063717614
文字列値に基づいて連続する行を選択するにはどうすればよいですか? 3 つの連続する数字をクエリすると、次のような結果が得られます。
- 2063717608 から 2063717610 まで
- 2063717609 から 2063717611 まで