WinFormのC#でSQLiteリバース エンジニアリング

■はじめに

モデルファーストな思考なので
モデル=>DB(テーブル)=>プログラムって流れで作りたいんだけど

ASP.netは出来るようだけど、WinFormだと極端に情報が少ない・・・
テーブルからエンティティクラスなどが作るって部分が見つからなかったのでメモ

■環境情報

OS:Windows11
DB:SQLite3
開発環境:Microsoft Visual Studio Professional 2022 (64 ビット)
.net core
windows form

■NuGetで必要なものをインストール

Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Sqlite.Core
SQLitePCLRaw.bundle_e_sqlcipher

■リバースエンジニアリング

事前に『A5:SQL Mk-2』で作成したSQLiteのファイルを使って実験
■パッケージマネージャーコンソールを開く

■パッケージマネージャーコンソールで下記コマンドを実行

Data Source:SQLiteのファイルPath
データベースプロバイダ:Microsoft.EntityFrameworkCore.Sqlite(他のDBの場合
-OutputDir:Models(出力フォルダ:必須では無いけど、自動生成の為分けたい為)
-Force:上書きモード(初回は不要だけど2回目以降は通常必要)
その他コマンド:https://learn.microsoft.com/ja-jp/ef/core/cli/powershell?source=recommendations

上記のような警告が出るけど、SQLiteの場合、避けることが難しそうなので無視

DBコンテキストとテーブルエンティティが出来上がった

まとめ

DBコンテキストも一緒に生成されるので、データアクセスが楽になるのがありがたい。

ココで終われば良いのに
DBアクセスの度にDBコンテキスト・・・って書くのはどうなんだろ?
これは、ServiceCollection(DI)使えば何とかなりとか

DBアクセス用のクラスも無いとなぁとか

動けば良い片手間システムなのに
なんか欲が出てくる汗;