Example #1
0
        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);
            }
Example #3
0
 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);
 }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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();
            }
        }