次の日付のリストを検討してください
ID NAME DATE
1 Mary 01-01-1901
2 Mary 01-01-1901
3 Mary 01-01-1901
4 Mary 01-01-1901
5 Lucy 01-01-1951
6 Peter 01-01-1961
上記は日付順のリストです。したがって、データベースではそのように表されません。
リストの次のレコードを BY DATE に取得しようとしています。私がやっていることは、データベースから人のリストを取得し、次に日付、次に ID で並べ替えることです。何が起こっているかというと、返される ID は常に同じです。
次のレコード -> 2 -> 次のレコード -> 1 -> 次のレコード 2 というように...最初の 2 つのレコードでスタックしているようです。LINQ-to-SQL を使用しています
以下は、これを達成するために使用しているコードです
string newID = dx.Persons
.AsEnumerable()
.ToList()
.Where(
x => x.DOB.CompareTo(newConvertedValue) == 0 && x.Id > currentID
||
x.DOB.CompareTo(newConvertedValue) > 0 && x.Id != currentID)
.OrderBy(x => x.DOB)
.ThenBy(x => x.Id)
.Select(x => x.Id.ToString(CultureInfo.InvariantCulture))
.First();
私にとって、Where 条件を指定した後にリストを並べ替えるのは意味がありませんが、ステートメントを変更しようとすると、要素がシーケンス内にないという例外が発生しました。
上記の変数には次の意味があることに注意してください。 newConvertedvalue = 現在表示されているレコードの生年月日 currentID = 現在表示されているレコードの ID。
さまざまなソリューションを使用してみましたが、これを解決する方法が見つからないようです。
整数と文字列を含む列の次のレコードを並べ替えてフェッチする同様の方法を実装しましたが、これは正常に機能しています (この素晴らしい Web サイトからの貢献にも感謝します)。しかし、日付を含むこの列には苦労しています。
読んでくれてありがとう。