忍者ブログ

MIT流なメモ

中央競馬の予想や購入したもののメモなどを書いて行こうかと。まあ、個人的なメモ的なブログです。

C#のLINQ to Entitiesで複数のソート

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

C#のLINQ to Entitiesで複数のソート

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の参照を有効にする必要があるって事の様です。

拍手[0回]

PR

コメント

カレンダー

01 2025/02 03
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

最新コメント

プロフィール

HN:
MIT
性別:
非公開

バーコード

ブログ内検索

コガネモチ

アクセス解析