Skip to content

Commit 965fae7

Browse files
committed
Merge pull request #38 from msallin/Issue_22
Partially fix for Issue 22
2 parents cbcb9b1 + 833bf4e commit 965fae7

File tree

4 files changed

+23
-16
lines changed

4 files changed

+23
-16
lines changed

SQLite.CodeFirst.Console/FootballDbContext.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder)
2222

2323
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
2424

25-
var initializer = new FootballDbInitializer(Database.Connection.ConnectionString, modelBuilder);
25+
var initializer = new FootballDbInitializer(modelBuilder);
2626
Database.SetInitializer(initializer);
2727
}
2828

@@ -47,8 +47,8 @@ private static void ConfigurePlayerEntity(DbModelBuilder modelBuilder)
4747

4848
public class FootballDbInitializer : SqliteDropCreateDatabaseAlways<FootballDbContext>
4949
{
50-
public FootballDbInitializer(string connectionString, DbModelBuilder modelBuilder)
51-
: base(connectionString, modelBuilder) { }
50+
public FootballDbInitializer(DbModelBuilder modelBuilder)
51+
: base(modelBuilder) { }
5252

5353
protected override void Seed(FootballDbContext context)
5454
{

SQLite.CodeFirst/SqliteCreateDatabaseIfNotExists.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ namespace SQLite.CodeFirst
66
public class SqliteCreateDatabaseIfNotExists<TContext> : SqliteInitializerBase<TContext>
77
where TContext : DbContext
88
{
9-
public SqliteCreateDatabaseIfNotExists(string connectionString, DbModelBuilder modelBuilder)
10-
: base(connectionString, modelBuilder) { }
9+
public SqliteCreateDatabaseIfNotExists(DbModelBuilder modelBuilder)
10+
: base(modelBuilder) { }
1111

1212
public override void InitializeDatabase(TContext context)
1313
{
14-
bool dbExists = File.Exists(DatabaseFilePath);
14+
string databseFilePath = GetDatabasePathFromContext(context);
15+
16+
bool dbExists = File.Exists(databseFilePath);
1517
if (dbExists)
1618
{
1719
return;

SQLite.CodeFirst/SqliteDropCreateDatabaseAlways.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,17 @@ namespace SQLite.CodeFirst
66
public class SqliteDropCreateDatabaseAlways<TContext> : SqliteInitializerBase<TContext>
77
where TContext : DbContext
88
{
9-
public SqliteDropCreateDatabaseAlways(string connectionString, DbModelBuilder modelBuilder)
10-
: base(connectionString, modelBuilder) { }
9+
public SqliteDropCreateDatabaseAlways(DbModelBuilder modelBuilder)
10+
: base(modelBuilder) { }
1111

1212
public override void InitializeDatabase(TContext context)
1313
{
14-
bool dbExists = File.Exists(DatabaseFilePath);
14+
string databseFilePath = GetDatabasePathFromContext(context);
15+
16+
bool dbExists = File.Exists(databseFilePath);
1517
if (dbExists)
1618
{
17-
File.Delete(DatabaseFilePath);
19+
File.Delete(databseFilePath);
1820
}
1921

2022
base.InitializeDatabase(context);

SQLite.CodeFirst/SqliteInitializerBase.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@ namespace SQLite.CodeFirst
77
public abstract class SqliteInitializerBase<TContext> : IDatabaseInitializer<TContext>
88
where TContext : DbContext
99
{
10-
protected readonly DbModelBuilder ModelBuilder;
11-
protected readonly string DatabaseFilePath;
10+
private readonly DbModelBuilder modelBuilder;
1211

13-
protected SqliteInitializerBase(string connectionString, DbModelBuilder modelBuilder)
12+
protected SqliteInitializerBase(DbModelBuilder modelBuilder)
1413
{
15-
DatabaseFilePath = SqliteConnectionStringParser.GetDataSource(connectionString);
16-
ModelBuilder = modelBuilder;
14+
this.modelBuilder = modelBuilder;
1715

1816
// This convention will crash the SQLite Provider before "InitializeDatabase" gets called.
1917
// See https://github.com/msallin/SQLiteCodeFirst/issues/7 for details.
@@ -22,7 +20,7 @@ protected SqliteInitializerBase(string connectionString, DbModelBuilder modelBui
2220

2321
public virtual void InitializeDatabase(TContext context)
2422
{
25-
var model = ModelBuilder.Build(context.Database.Connection);
23+
var model = modelBuilder.Build(context.Database.Connection);
2624

2725
using (var transaction = context.Database.BeginTransaction())
2826
{
@@ -56,5 +54,10 @@ public virtual void InitializeDatabase(TContext context)
5654
}
5755

5856
protected virtual void Seed(TContext context) { }
57+
58+
protected string GetDatabasePathFromContext(TContext context)
59+
{
60+
return SqliteConnectionStringParser.GetDataSource(context.Database.Connection.ConnectionString);
61+
}
5962
}
6063
}

0 commit comments

Comments
 (0)