細々としたプログラム書くのに使えたら便利なのにとか思いながらいろいろ調べつつ試行錯誤してました。
環境・テーブル構造・フォームのコードについてはEntityFramework6で単純なデータ表示フォームを作成と同じ。
EntityクラスについてはEntity FrameworkでPostgreSQLに接続すると同じものを流用。
ちなみに今回はデータベースについては予め用意したものではなく、CodeFirstによって生成しています。
###パッケージインストール
NugetよりSQLite.CodeFirstをインストール。
依存関係は全部引っ張ってきてくれます。ものぐさ万歳。
###App.configの編集
<configration>
セクション内に以下を追記。
今回はローカルファイルへの接続。サーバー接続の場合は別の書式が必要かもしれません。
App.condig
<entityFramework>
~~~
<providers>
~~~
<provider invariantName="System.Data.SQLite"
type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<connectionStrings>
<add name="musicGame"
connectionString="Data Source=db.sqlite;"
providerName="System.Data.SQLite.EF6"/>
</connectionStrings>
###コンテキストクラスの作成
MusicGameData.cs
using SQLite.CodeFirst;
using System.Data.Entity;
namespace SQLite_CodetoDB
{
class MusicGameData : DbContext
{
public MusicGameData()
: base("name=musicGame")
{
}
public DbSet<Model> Models { get; set; }
public DbSet<Title> Titles { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var sqliteConnectionInitializer = new SqliteCreateDatabaseIfNotExists<MusicGameData>(modelBuilder);
Database.SetInitializer(sqliteConnectionInitializer);
}
}
}
これで以前のコードを用いてデータのINSERT、及びSELECTが可能なことを確認しました。