「速習ASP.NET Core」のDBをSQLiteにする手順
会社では普段フロントエンドの構築を行っていますが、サーバサイドの言語としてC# / ASP.netが使われているため、業務の役に立つのではということで、ASP.NET Core を触っています。
山田祥寛さんの「速習ASP.NET Core」が分かりやすかったので、少しずつ読み進めているのですが、 「Part2.モデルの基本」のEntity Frameworkの説明で、MSSQLを使用している箇所をSQLiteで実装したかったので、 SQLiteの追加〜マイグレーションまでの手順をまとめてみました。
環境は下記のとおりです。
- OS: Ubuntu 16.04 LTS
- Editor: Visual Studio Code
- ASP.NET Core 2.1
基本的には、下記の公式チュートリアルを、書籍の内容に置き換えて適用する形となります。
.ASP.NET Core MVC アプリへのモデルの追加 | Microsoft Docs
※namespaceは個人用のプロジェクト名に合わせているので、ご自身の環境に応じて変更してください。
/Models
にMyContext.csを追加
using Microsoft.EntityFrameworkCore; namespace tutorial_dotnet_core_mvc.Models { public class MyContext: DbContext { public MyContext(DbContextOptions<MyContext> options):base(options) {} public DbSet<Book> Book {get; set;} } }
SQLiteの追加
startup.csを編集
// usingを追加 using Microsoft.EntityFrameworkCore; using tutorial_dotnet_core_mvc.Models; public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); // 追加 services.AddDbContext<MyContext>(options => options.UseSqlite("Data Source=MyDb.db")); ... }
EntityFrameworkCore.Sqliteをターミナルから追加
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 2.1.1
マイグレーションを実行
// migrationファイルの作成 dotnet ef migrations add InitialCreate // データベースの作成 dotnet ef database update
注意点
SQLiteにはboolean型が無いため、DBに値を入力するときは、'0','1'に置き換える必要があります