0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Blazor Hosted】SQLiteからAPIでデータ取得時につまづいた【.NET 5】

Posted at

はじめに

以前、Blazor(Hosted)とSQL ServerをつかってTodoチュートリアルをやった

SQLite版(かつ.NET5にダウングレード)した際に、APIをつかってデータを取得するところでつまづいたので、メモとして残す

何が起きたのか

以前と同様にapi/TodoItemsGETでアクセスして、アイテムを取得しようとしたら接続できず

直接そのURLにアクセスしたときのスクリーンショットは以下のとおり

image.png

GitHubのISSUEを検索

エラーメッセージがタイトルのISSUEを発見

SQLitePCLRaw.bundle_e_sqlite3をインストールしたら直ったという投稿あり

NuGetでSQLitePCLRaw.bundle_e_sqlite3をインストールする

インストール後のパッケージ一覧は以下のとおり

PM> dotnet list package
   [net5.0]: 
   最上位レベル パッケージ                                              要求済み     解決済み  
   > Microsoft.AspNetCore.Components.WebAssembly.Server      5.0.16   5.0.16
   > Microsoft.EntityFrameworkCore                           5.0.16   5.0.16
   > Microsoft.EntityFrameworkCore.Sqlite.Core               5.0.16   5.0.16
   > Microsoft.EntityFrameworkCore.SqlServer                 5.0.16   5.0.16
   > Microsoft.EntityFrameworkCore.Tools                     5.0.16   5.0.16
   > Microsoft.VisualStudio.Web.CodeGeneration.Design        5.0.2    5.0.2 
   > SQLitePCLRaw.bundle_e_sqlite3                           2.0.7    2.0.7 

1番下にパッケージが追加された

(コントローラーのスキャフォールディングをする際にSqlServerが勝手にインストールされた模様)

動作確認

うごいた!

image.png

(右はDB Browser for SQLiteの画面)

おまけ

せっかくなので、.NET6+SQLServerからSQLite版にした際の変更箇所をメモしておく

Startup.csappsettings.jsonの変更点

DBコンテキストのサービス登録を、UseSqliteに変更する

ただし、.NET6からトップレベルステートメントとやらで記述の仕方が結構違うので注意する

Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<Context.TodoDbContext>(
        options => options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
}

appsettings.jsonはSQLServerに比べてとても短い

appsettings.json
 "ConnectionStrings": {
    "DefaultConnection": "Data Source=TodoDb.db"
  },

EF Core データベースの扱い

EFCoreのコマンドを打つだけで、.dbファイルが生成される

PM> Add-Migration Init
PM> Update-Database

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?