.NET Core上でF#とSQLiteを結び付ける前哨戦として、ASP.NET Core MVC で SQLite を使ってみます。
方法としては、Visual Studio で「ASP.NET Core Web Applicaiton(.NET Core)」は、SQL Serverを使う設定になっているので、これをSQLiteに切り替えるだけです。
NuGetでSQLiteをインストール
– Microsoft.EntityFrameworkCore.SQLite
– Microsoft.EntityFrameworkCore.SQLite.Desgin
の2つをインストールします。Desginのほうは、データベースファーストのほうで使うけど、一応インストール。
SQLiteの設定に切り替え
StartupクラスのConfigureServicesメソッドで、UseSqlServerの箇所をUseSqliteに切り替え。
Startup.cs
1 2 3 4 5 6 7 | public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ApplicationDbContext>(options => options.UseSqlite(Configuration.GetConnectionString( "DefaultConnection" ))); // Add framework services. services.AddMvc(); } |
appsettings.jsonを開いて、DefaultConnectionの値をSQLiteが使うファイル名にする。
appsettings.json
1 2 3 4 5 6 7 8 9 10 11 12 13 | { "ConnectionStrings" : { "DefaultConnection" : "Filename=./sample.db" }, "Logging" : { "IncludeScopes" : false , "LogLevel" : { "Default" : "Debug" , "System" : "Information" , "Microsoft" : "Information" } } } |
Modelクラスを作って、スキャフォールディング
あとは、SQL Serverのときと同じで、ModelクラスになるPersonクラスを使って、スキャフォールディングを実行。
1 2 3 4 5 6 7 8 9 | namespace SampleSQLiteMvc.Models { public class Person { public int Id { get ; set ; } public string Name { get ; set ; } public int Age { get ; set ; } } } |
マイグレーションとデータベースのアップデートをすれば完了です。
1 2 | dotnet ef migrations add init dotnet ef database update |
実行
実行するとこんな感じに、SQL Serverのときと同じように動きます。
肝は、NuGet で Microsoft.EntityFrameworkCore.SQLite を入れて、Startupクラスで接続先を変えるだけなので、それほど難しくありません。
サンプルコード
サンプルコードはこちら
https://1drv.ms/u/s!AmXmBbuizQkXgfwL7jS1NrKxv8KbQg