private DbDialect(DbDialectEnum dialect) { switch (dialect) { case DbDialectEnum.PostgreSQL: Dialect = DbDialectEnum.PostgreSQL; Encapsulation = "{0}"; GetListCountSql = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u"; GetPagedListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowsPerPage} OFFSET (({PageNumber}-1) * {RowsPerPage})"; GetFromToListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowCount} OFFSET ({FromRecord})"; break; case DbDialectEnum.SQLite: Dialect = DbDialectEnum.SQLite; Encapsulation = "{0}"; GetListCountSql = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u"; GetPagedListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowsPerPage} OFFSET (({PageNumber}-1) * {RowsPerPage})"; GetFromToListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowCount} OFFSET ({FromRecord})"; break; case DbDialectEnum.MySQL: Dialect = DbDialectEnum.MySQL; Encapsulation = "`{0}`"; GetListCountSql = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u"; GetPagedListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {Offset},{RowsPerPage}"; GetFromToListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {FromRecord},{RowCount}"; break; default: Dialect = DbDialectEnum.SQLServer; Encapsulation = "[{0}]"; GetListCountSql = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u"; GetPagedListSql = "SELECT {SelectNamedColumns} FROM (SELECT ROW_NUMBER() OVER(ORDER BY {OrderBy}) AS PagedNumber, {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u WHERE PagedNUMBER BETWEEN (({PageNumber}-1) * {RowsPerPage} + 1) AND ({PageNumber} * {RowsPerPage})"; GetFromToListSql = "SELECT {SelectNamedColumns} FROM (SELECT ROW_NUMBER() OVER(ORDER BY {OrderBy}) AS PagedNumber, {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u WHERE PagedNUMBER BETWEEN ({FromRecord} + 1) AND ({FromRecord} + {RowCount})"; break; } }
public static DbDialect Instance(DbDialectEnum dialect) { return(_instance[(int)dialect].Value); }
private static DbDialect Retreive(DbDialectEnum dialect) { return(new DbDialect(dialect)); }