(チュートリアルをやってみる)Entity Framework Core

 久しぶりに勉強してみようとマイクロソフトのサイトを読んでいたら、Entity Framework 6 はすでに古いバージョンで、今は Entity Framework Core が新しいらしい。

これ、WinFormsの古いデスクトップアプリでも使えるの?

EFのドキュメントはここ

Entity Framework ドキュメント | Microsoft Docs

チュートリアルをやってみる。


Entity Framework Core をインストールする

<pre>

PM> Install-Package Microsoft.EntityFrameworkCore.Sqlite

C:\Users\t-saw\source\Workspaces\test\調査\Entity Framework\EFGetStarted\EFGetStarted\EFGetStarted.csproj のパッケージを復元しています...

  GET https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/index.json

  OK https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/index.json 826 ミリ秒

  GET https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/6.0.0/microsoft.entityframeworkcore.sqlite.6.0.0.nupkg

  OK https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/6.0.0/microsoft.entityframeworkcore.sqlite.6.0.0.nupkg 5 ミリ秒

コンテンツ ハッシュ VwNbLaMpDD9s/tVmK/sivJsYoXdM3ARBjWMtFUXVExZ6AgZxPwSgILF2J4Y9CRvf/r6A0xitvFXQO6HPrZnwrg== の https://api.nuget.org/v3/index.json から Microsoft.EntityFrameworkCore.Sqlite 6.0.0 がインストールされました。

Install-Package : NU1202: パッケージ Microsoft.EntityFrameworkCore.Sqlite 6.0.0 は net5.0 (.NETCoreApp,Version=v5.0) と互換性がありません。 パッケージ Microsoft.EntityFrameworkCore.Sqlite 6.0.0 がサポートするもの: net6.0 (.NETCoreApp,Version=v6.0)

発生場所 行:1 文字:1

+ Install-Package Microsoft.EntityFrameworkCore.Sqlite

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception

    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

 

Install-Package : パッケージの復元に失敗しました。'EFGetStarted' のパッケージの変更をロールバックします。

発生場所 行:1 文字:1

+ Install-Package Microsoft.EntityFrameworkCore.Sqlite

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception

    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

 

経過した時間: 00:00:03.7448609

PM> 

</pre>

いきなりエラーからスタート。.NET 6 が必要なのかな。

VisualStudio2019では.NET6はつかえないようなので、VisualStudio2022で再開する。

ターゲットフレームワークを .NET6 に切り替えて、パッケージをインストールする。こんどはOK。

モデルを作成する

クラスファイルを作るだけなので、OK

データベースの作成

パッケージマネージャから何かをインストールしていく。よくわからないけど、簡単、便利やね。

*ここで1時間たったので今日は終了

作成、読み取り、更新、および削除

コードをコピーするだけ。

アプリを実行する

実行してみた。正常終了したみたいだけど、、、え?これで終わり?


説明っぽい何かは無いの???

コードを読んでみると、SQLを全く使わずにデータのInsert、Select、Update、Deleteが書かれているように思える。これは、いいなあ。C#のコードの中にSQL文を書くのは、なんか、しっくりこないので、全部C#でデータベースを扱えるようになるのは嬉しいなあ。

しかし、既存のSQLガリガリ書いているアプリをEFで書き換えるのは可能なのだろうか?このあたりは、もう少し勉強していきましょう。


コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。