LINQの書き方(C#)

LINQとは

LINQについて、Webサイトで調べると、"LINQはプログラミング言語(C#やVB)に統合されたクエリ用言語です。通常データベースアクセスに使用するSQLが、C#やVBのプログラム内では文字列として扱われるのに対し、LINQはそれ自体が言語に統合されたクエリとして認識されます。( 参考 )などと書かれていたりしますが、書籍管理アプリでLINQを使う場合のサンプルがあったほうが、わかりやすいかと思いますので、サンプルを貼っていきます。

基本的な考え方

ここでは、蔵書テーブルに対するやり取りのサンプルコードを使用します

  1. クエリ文の宣言
  1. 条件を加える
  1. リストとして実体化する

1~3までの処理を一行にまとめる

処理を一行でまとめるとシンプルなコードが書けるのですが、 クエリ文を作成するところと、実体化する部分を分けることによって 、検索やソートの処理を簡単に実装することができます。以下は参考です。

Microsoft Document→ ASP.NET Core の Razor Pages と EF Core – 並べ替え、フィルター、ページング

やりがちなミス

演習を進めていくと、貸し出しテーブルの「ステータス」と書籍マスタの書籍名を一つのページに表示させたいという場面があるかと思います。
その時に、以下のようにLINQを書くと、上手くいきません。

理由としては、上の図を見てもらえば分かると思うのですが、テーブルの設計上、BorrowBooksテーブルからしか、Booksテーブルの内容を参照できないことが原因になります。
他のテーブルのデータを取ってきたい場合は、青い矢印でたどっていくように、以下のようにコードを書くと上手くいくと思います。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)