中央競馬の予想や購入したもののメモなどを書いて行こうかと。まあ、個人的なメモ的なブログです。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
C#だろうとVBだろうと、まあ、そもそもSQLは素人レベルだけど、なんとなくだけど、ここまで40年以上プログラミングしてたりすると、ある程度予測が出来たりしてイメージして、それをLINQ的に書いてみたりしてるんですが、LINQにはクエリ式とメソッド式があるんだと。で、最初はクエリ式で
var races = from i in db.RaceInfo
orderby i.year descending, i.month descending, i.day descending
select i;
って感じで書いてたんですが、メソッド式で
var races = db.RaceInfo
.OrderByDescending(i => i.year)
.OrderByDescending(i => i.month)
.OrderByDescending(i => i.day)
.ToArray();
にしてみたんですが、上手くソートされない。よくよく調べると、
var races = db.RaceInfo
.OrderByDescending(i => i.year)
.ThenByDescending(i => i.month)
.ThenByDescending(i => i.day)
.ToArray();
としなければならない事が分かった。LINQには更にLINQ to EntitiesとLINQ to Objectがあるんだと。で、更に今回の用途では読込のみで更新なんかはしないので
var races = db.RaceInfo
.OrderByDescending(i => i.year)
.ThenByDescending(i => i.month)
.ThenByDescending(i => i.day)
.AsNoTracking()
.ToArray();
としてやると、かなりスピードアップしました。これするには、今回のプロジェクトではusing Microsoft.EntityFrameworkCore;の追加が必要でした。自分の使っているEntityFrameworkの参照を有効にする必要があるって事の様です。