.NETとは?
Microsoftが開発したソフトウェア開発のための「プラットフォーム(基盤)」です。
主要な特徴
• 共通のランタイム環境(CLR)
プログラムを実行する共通の仕組みがあり、どの言語で書いても動きやすい。
• 多言語対応
C#、F#、VB.NETなど複数の言語が使える。特にC#が人気。
• 豊富なライブラリ
データベース操作やファイル操作、ネットワーク通信など、よく使う機能がパッケージ化されている。
• クロスプラットフォーム
Windowsだけでなく、macOSやLinuxでも動く(特に「.NET Core」以降はこれが強化された)。
dotnet build コマンドの意味
役割
- .NETプロジェクトをビルド(コンパイル)し、実行可能なアセンブリ(DLLやEXE)を生成します。
処理内容
- ソースコードのコンパイル
- 依存パッケージの復元(必要に応じて)
- リソースや設定ファイルの処理
- 出力フォルダ(例: bin/Debug/net9.0/)に成果物を作成
主な用途
- エラーの有無をチェック
- プロジェクトの実行ファイルやライブラリを作る準備
今回のビルドが通らなかった主な原因まとめ
① 名前空間・型が見つからないエラー(CS0246)
• エラーメッセージ例:
error CS0246: 型または名前空間の名前 'DbContext' が見つかりませんでした
• 原因
Microsoft.EntityFrameworkCore パッケージがプロジェクトに正しく追加されていなかった。
• 対処
dotnet add package Microsoft.EntityFrameworkCore などEF Core関連パッケージを追加し、復元・ビルドし直した。
② プロパティ名の大文字・小文字ミスによるメンバーアクセスエラー(CS1061)
• エラーメッセージ例:
'AppDbContext' に 'InsuranceProducts' の定義が含まれておらず、アクセス可能な拡張メソッドが見つかりませんでした
• 原因
AppDbContext の DbSet プロパティ名は Products であるのに、コントローラーで _context.InsuranceProducts や _context.products と書いていたため。
• 対処
コントローラー内で正しいプロパティ名 Products に修正した。
③ モデルのプロパティに対する警告(CS8618)
• 警告例:
null 非許容のプロパティ 'Name' には、コンストラクターの終了時に null 以外の値が入っていなければなりません。
• 原因
C#のNullable Reference Types機能により、string Nameがnullを許容しないのにコンストラクターや初期化で値がセットされていない場合の警告。
• 対処例
プロパティを string? Description のようにnullableにする
• nullableとは
「nullable(ヌラブル)」とは、null(値が存在しない状態)を許容する型のことを指します。