Inheritance: SqlDialectBase
        private IMap<Post> GenerateMap() {
            var dialect = new SqlServerDialect();
            var config = new Mock<IConfiguration>(MockBehavior.Strict);

            var map = new Map<Post> { Table = "Posts", Schema = null, Configuration = config.Object };

            map.Columns.Add(
                "PostId",
                new Column<int> {
                                    Name = "PostId",
                                    DbName = "PostId",
                                    DbType = DbType.Int32,
                                    Map = map,
                                    IsPrimaryKey = true,
                                    IsAutoGenerated = true,
                                    IsNullable = false
                                });

            map.PrimaryKey = map.Columns.First().Value;
            return map;
        }
 private static ICountWriter MakeTarget() {
     var dialect = new SqlServerDialect();
     var configuration = MakeConfig();
     var selectWriter = new CountWriter(dialect, configuration);
     return selectWriter;
 }
        public void IfExistsGeneratesExpectedSql() {
            var dialect = new SqlServerDialect();
            var sql = dialect.WriteDropTableIfExists("<tablename>");

            Assert.Equal("if exists (select 1 from INFORMATION_SCHEMA.TABLES where TABLE_NAME = '<tablename>') drop table [<tablename>]", sql);
        }