public void Can_create_TableWithNamingStrategy_table_aliases()
        {
            var aliasNamingStrategy = new AliasNamingStrategy
            {
                TableAliases  = { { "ModelWithOnlyStringFields", "TableAlias" } },
                ColumnAliases = { { "Name", "ColumnAlias" } },
            };

            using (new TemporaryNamingStrategy(DialectProvider, aliasNamingStrategy))
                using (var db = OpenDbConnection())
                {
                    db.CreateTable <ModelWithOnlyStringFields>(true);

                    var sql = db.GetLastSql().NormalizeSql();
                    Assert.That(sql, Does.Contain("CREATE TABLE TableAlias".NormalizeSql()));
                    Assert.That(sql, Does.Contain("ColumnAlias".NormalizeSql()));

                    var result = db.SqlList <ModelWithIdAndName>(
                        $"SELECT * FROM {"ModelWithOnlyStringFields".SqlTable(DialectProvider)} WHERE {"Name".SqlColumn(DialectProvider)} = 'foo'");

                    Assert.That(db.GetLastSql().NormalizeSql(),
                                Is.EqualTo("SELECT * FROM TableAlias WHERE ColumnAlias = 'foo'".NormalizeSql()));

                    db.DropTable <ModelWithOnlyStringFields>();

                    aliasNamingStrategy.UseNamingStrategy = new LowerCaseUnderscoreNamingStrategy();

                    db.CreateTable <ModelWithOnlyStringFields>(true);
                    sql = db.GetLastSql().NormalizeSql();
                    Assert.That(sql, Does.Contain("CREATE TABLE table_alias".NormalizeSql()));
                    Assert.That(sql, Does.Contain("column_alias".NormalizeSql()));
                }
        }
        public void Can_create_TableWithNamingStrategy_table_aliases()
        {
	        var aliasNamingStrategy = new AliasNamingStrategy
	        {
                TableAliases = { { "ModelWithOnlyStringFields", "TableAlias" } },
                ColumnAliases = { { "Name", "ColumnAlias" } },
            };
	        OrmLiteConfig.DialectProvider.NamingStrategy = aliasNamingStrategy;

            using (var db = OpenDbConnection())
            {
                db.CreateTable<ModelWithOnlyStringFields>(true);

                var sql = db.GetLastSql();
                Assert.That(sql, Is.StringContaining("CREATE TABLE \"TableAlias\"")
                                 .Or.StringContaining("CREATE TABLE TableAlias"));
                Assert.That(sql, Is.StringContaining("ColumnAlias"));

                var result = db.SqlList<ModelWithIdAndName>(
                    "SELECT * FROM {0} WHERE {1} = {2}"
                        .Fmt("ModelWithOnlyStringFields".SqlTable(),
                             "Name".SqlColumn(),
                             "foo".SqlValue()));

                Assert.That(db.GetLastSql(), Is.EqualTo("SELECT * FROM \"TableAlias\" WHERE \"ColumnAlias\" = 'foo'")
                                             .Or.EqualTo("SELECT * FROM TableAlias WHERE ColumnAlias = 'foo'"));

                db.DropTable<ModelWithOnlyStringFields>();

                aliasNamingStrategy.UseNamingStrategy = new LowerCaseUnderscoreNamingStrategy();

                db.CreateTable<ModelWithOnlyStringFields>(true);
                sql = db.GetLastSql();
                Assert.That(sql, Is.StringContaining("CREATE TABLE \"table_alias\"")
                                 .Or.StringContaining("CREATE TABLE table_alias"));
                Assert.That(sql, Is.StringContaining("column_alias"));
            }

            OrmLiteConfig.DialectProvider.NamingStrategy = new OrmLiteNamingStrategyBase();
        }
        public void Can_create_TableWithNamingStrategy_table_aliases()
        {
            var aliasNamingStrategy = new AliasNamingStrategy
            {
                TableAliases  = { { "ModelWithOnlyStringFields", "TableAlias" } },
                ColumnAliases = { { "Name", "ColumnAlias" } },
            };

            OrmLiteConfig.DialectProvider.NamingStrategy = aliasNamingStrategy;

            using (var db = OpenDbConnection())
            {
                db.CreateTable <ModelWithOnlyStringFields>(true);

                var sql = db.GetLastSql().NormalizeSql();
                Assert.That(sql, Is.StringContaining("CREATE TABLE TableAlias".NormalizeSql()));
                Assert.That(sql, Is.StringContaining("ColumnAlias".NormalizeSql()));

                var result = db.SqlList <ModelWithIdAndName>(
                    "SELECT * FROM {0} WHERE {1} = {2}"
                    .Fmt("ModelWithOnlyStringFields".SqlTable(),
                         "Name".SqlColumn(),
                         "foo".SqlValue()));

                Assert.That(db.GetLastSql().NormalizeSql(),
                            Is.EqualTo("SELECT * FROM TableAlias WHERE ColumnAlias = 'foo'".NormalizeSql()));

                db.DropTable <ModelWithOnlyStringFields>();

                aliasNamingStrategy.UseNamingStrategy = new LowerCaseUnderscoreNamingStrategy();

                db.CreateTable <ModelWithOnlyStringFields>(true);
                sql = db.GetLastSql().NormalizeSql();
                Assert.That(sql, Is.StringContaining("CREATE TABLE table_alias".NormalizeSql()));
                Assert.That(sql, Is.StringContaining("column_alias".NormalizeSql()));
            }

            OrmLiteConfig.DialectProvider.NamingStrategy = new OrmLiteNamingStrategyBase();
        }
        public void Can_create_TableWithNamingStrategy_table_aliases()
        {
            var aliasNamingStrategy = new AliasNamingStrategy
            {
                TableAliases = { { "ModelWithOnlyStringFields", "TableAlias" } },
                ColumnAliases = { { "Name", "ColumnAlias" } },
            };

            using (new TemporaryNamingStrategy(aliasNamingStrategy))
            using (var db = OpenDbConnection())
            {
                db.CreateTable<ModelWithOnlyStringFields>(true);

                var sql = db.GetLastSql().NormalizeSql();
                Assert.That(sql, Does.Contain("CREATE TABLE TableAlias".NormalizeSql()));
                Assert.That(sql, Does.Contain("ColumnAlias".NormalizeSql()));

                var result = db.SqlList<ModelWithIdAndName>(
                    "SELECT * FROM {0} WHERE {1} = {2}"
                        .Fmt("ModelWithOnlyStringFields".SqlTable(),
                             "Name".SqlColumn(),
                             "foo".SqlValue()));

                Assert.That(db.GetLastSql().NormalizeSql(),
                    Is.EqualTo("SELECT * FROM TableAlias WHERE ColumnAlias = 'foo'".NormalizeSql()));

                db.DropTable<ModelWithOnlyStringFields>();

                aliasNamingStrategy.UseNamingStrategy = new LowerCaseUnderscoreNamingStrategy();

                db.CreateTable<ModelWithOnlyStringFields>(true);
                sql = db.GetLastSql().NormalizeSql();
                Assert.That(sql, Does.Contain("CREATE TABLE table_alias".NormalizeSql()));
                Assert.That(sql, Does.Contain("column_alias".NormalizeSql()));
            }
        }