SQLite EF 6 Database Initializer

March 16, 2015 ยท View on GitHub

using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.ModelConfiguration.Conventions; using System.Data.SQLite; using System.Linq;

namespace SQliteEF6 { class SqliteContext : DbContext { // // Add your DbSet... here //

	private string _dbPath;

	public SqliteContext(string path)
		: base(new SQLiteConnection
		{
			ConnectionString = new SQLiteConnectionStringBuilder
			{
				DataSource = path,
				ForeignKeys = true,
				BinaryGUID = false,
			}.ConnectionString
		}, true)
	{
		_dbPath = path;
		Database.Log = Console.Write;
	}

	protected override void OnModelCreating(DbModelBuilder modelBuilder)
	{
		modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
		Database.SetInitializer(new SqliteContextInitializer<JobContext>(_dbPath, modelBuilder));
	}
}

}