private static IHistoryRepository CreateHistoryRepository() { var annotationsProvider = new SqliteAnnotationProvider(); var sqlGenerator = new SqliteSqlGenerator(); var typeMapper = new SqliteTypeMapper(); return(new SqliteHistoryRepository( Mock.Of <IRelationalDatabaseCreator>(), Mock.Of <ISqlCommandBuilder>(), Mock.Of <IRelationalConnection>(), new DbContextOptions <DbContext>( new Dictionary <Type, IDbContextOptionsExtension> { { typeof(SqliteOptionsExtension), new SqliteOptionsExtension() } }), new MigrationsModelDiffer( annotationsProvider, new SqliteMigrationsAnnotationProvider()), new SqliteMigrationsSqlGenerator( new RelationalCommandBuilderFactory( new FakeSensitiveDataLogger <RelationalCommandBuilderFactory>(), new DiagnosticListener("Fake"), typeMapper), new SqliteSqlGenerator(), typeMapper, annotationsProvider), annotationsProvider, sqlGenerator)); }
public override void InitializeDatabase(DummyDbContext context) { DbModel model = ModelBuilder.Build(context.Database.Connection); var sqliteSqlGenerator = new SqliteSqlGenerator(); generatedSql = sqliteSqlGenerator.Generate(model.StoreModel); base.InitializeDatabase(context); }
protected override void OnModelCreating(DbModelBuilder modelBuilder) { var model = modelBuilder.Build(Database.Connection); ISqlGenerator sqlGenerator = new SqliteSqlGenerator(); string sql = sqlGenerator.Generate(model.StoreModel); //IDatabaseCreator sqliteDatabaseCreator = new SqliteDatabaseCreator(); //sqliteDatabaseCreator.Create(Database, model); }
protected override void OnModelCreating(DbModelBuilder modelBuilder) { ModelConfiguration.Configure(modelBuilder); var initializer = new SQLLiteDbInitializer(modelBuilder); Database.SetInitializer(initializer); var model = modelBuilder.Build(Database.Connection); var sqlGenerator = new SqliteSqlGenerator(); string sql = sqlGenerator.Generate(model.StoreModel); }
public string GetCreateTableQuery() { // modelBuilder заполняется один раз на оджин тип контекста, при повторном создании объекта OnModelCreating не вызывается - всё уже кэшировано if (modelBuilder == null) { return(string.Empty); } var generator = new SqliteSqlGenerator(); var model = modelBuilder.Build(Database.Connection); var sql = generator.Generate(model.StoreModel).Insert(12, " IF NOT EXISTS "); return(sql); }
protected override void OnModelCreating(DbModelBuilder modelBuilder) { var sqliteConnectionInitializer = new SqliteCreateDatabaseIfNotExists <MyDbContext>(modelBuilder); Database.SetInitializer(sqliteConnectionInitializer); var model = modelBuilder.Build(Database.Connection); ISqlGenerator sqlGenerator = new SqliteSqlGenerator(); _ = sqlGenerator.Generate(model.StoreModel); modelBuilder.Entity <Tables.Order>() .HasRequired <Tables.Person>(o => o.Person) .WithMany(p => p.Orders) .HasForeignKey(o => o.PersonId); }
private void CreateTableIfNotExists(DbModelBuilder modelBuilder) { this.modelBuilder = modelBuilder; TryOpenConnection(); //эта штука вызывается при обращении к базе, когда подключение данного контекта закрыто. //return; using (var creationCommand = Database.Connection.CreateCommand()) { var generator = new SqliteSqlGenerator(); var model = modelBuilder.Build(Database.Connection); var sql = generator .Generate(model.StoreModel) .Replace("CREATE TABLE", "CREATE TABLE IF NOT EXISTS") .Replace("CREATE INDEX", "CREATE INDEX IF NOT EXISTS"); creationCommand.CommandText = sql; creationCommand.CommandTimeout = commandTimeoutInSeconds; creationCommand.ExecuteNonQuery(); } }