投稿

11月, 2025の投稿を表示しています

12月1日(月)1コマ目

イメージ
今日、やったこと [LINQ]グループ化 今日のホワイトボード LINQのグループ化  SQLと異なり、 groupとbyのあいだにグループ化する対象 を指定。 byのあとには、グループ化する際のキーを指定。これはSQLと同じ。 図 LINQのgroup句 グループ化のみ LINQは「select句またはgroup句で終わる」。 以下のように、group句で終了すると、グループ化した各グループを取得することができる。 図 group句で終わった場合 SQLと異なり、取得した各グループの中身をさらに取得することができる。 上のプログラムでは、 9行目の変数groupはグループ化された各グループ 16行目の変数groupは9行目のgroup 16行目の変数itemはグループ化された各グループ内の商品 となる。 グループ関数を使う① グループ化して、各グループの行数をカウントする。 図 グループ化した結果を仮テーブルgroupedへ まず、グループ化した結果を仮テーブルgroupedに一旦格納。 select句でこの仮テーブルgroupedのCount()メソッドを実行すると、各グループの件数(=行数)が取得できる。 グループ関数を使う② count()メソッド以外にも、グループ関数のようなメソッドがある。 図 グループ関数的なメソッドたち 上図のように、count()メソッド以外は引数が 引数1こ、戻り値ありの ラムダ式。 次回は 複数列でグループ化。 そのあとは練習問題。 ...

11月17日(月)1コマ目

今日、やったこと [LINQ]行の検索、並び替え [練習問題]LINQ練習問題2 今日のホワイトボード [練習問題 解説]LINQ練習問題2 行の検索、並び替えは比較演算子、論理演算子が異なるくらいで、SQLとほぼ一緒。 正解例をあげておきます。 App.config DB接続文字列設定ファイル。 Group.cs CS_グループマスタにひもづくクラス。 Item.cs CS_商品マスタテーブルにひもづくクラス。 SushiDbContext.cs DBアクセス担当。 Program.cs 次回は グループ化とグループに対する条件。

11月6日(木)4コマ目

イメージ
今日、やったこと [練習問題]LINQ練習問題1 今日の練習問題 LINQで複数のテーブルを結合する場合 on以降の結合条件が、from句とjoin句の影響を受けるので注意!! 結合条件の equalsの 左辺 には、 from句 で指定したデータ。 結合条件の equalsの 右辺 には、 join句 で指定したデータ。 図 複数テーブルを結合する場合  正解例をあげておきます。 App.config 接続文字列をここで定義。 Maker.cs メーカーマスタテーブルに紐づくクラス。 Genre.cs 製品ジャンルマスタテーブルに紐づくクラス。 Camera.cs 製品マスタテーブルに紐づくクラス。 CameraDbContext.cs DbContext継承クラス。DBアクセスを担当。 Program.cs エントリポイント。 次回は 解説します。 検索、並び替えをやります。

11月5日(水)2コマ目

イメージ
今日、やったこと LINQ 単一テーブルを全件検索 検索結果の関数実行 出力する列を指定(射影) 複数テーブルを結合して検索 今日のホワイトボード 前回 作成したサンプルアプリケーションのProgram.csで確認。 単一テーブルを全件検索 SQLと異なり、FROMとSELECTの順が逆。 図 CS_グループマスタテーブルを全件検索 CS_グループマスタテーブルを全件検索は以下のとおり。 CS_商品マスタテーブルを全件検索は以下のとおり。 ItemクラスのToString()メソッド実行 CS_商品マスタテーブルを全件検索し、検索結果(Itemクラス)のメソッドを実行した結果を取得する。 select句でメソッドを呼び出す。 図 検索結果のメソッドを呼び出す 取得する列を指定する(射影) SQLだと、SELECT句で列名を指定する。 LINQでは、SELECT句で、必要な列のプロパティを持つクラスのインスタンスを生成する。 このクラスは一時的に使うだけなので、匿名クラスで対応。 図 取得する列を指定(射影) テーブルを結合する ...