/// <summary> /// 根据配置创建数据库连接 /// </summary> /// <returns></returns> public ISqlDialect CreateDialect() { ISqlDialect sqlDialect = null; switch (_dbType) { case DBType.SqlServer: sqlDialect = new SqlServerDialect(); break; case DBType.MySql: sqlDialect = new MySqlDialect(); break; case DBType.Oracle: sqlDialect = new OracleDialect(); break; case DBType.SqlCe: sqlDialect = new SqlCeDialect(); break; case DBType.SQLite: sqlDialect = new SqliteDialect(); break; } return(sqlDialect); }
/// <summary> /// 工厂模式 根据配置创建数据库 /// </summary> /// <returns></returns> public static ISqlDialect CreateSqlDialect() { ISqlDialect sqlDialect = null; switch (PubConstant.DbType.ToLower()) { case "mssql": sqlDialect = new SqlServerDialect(); break; case "mysql": sqlDialect = new MySqlDialect(); break; case "oracle": sqlDialect = new OracleDialect(); break; case "sqlce": sqlDialect = new SqlCeDialect(); break; case "sqlite": sqlDialect = new SqliteDialect(); break; } return(sqlDialect); }
public void PageWithWhereAndOrderByMultiLine() { var sqlDialect = new MySqlDialect(); var sqlQuery = new SqlQuery(@"SELECT CustomerId, Name, DateOfBirth, CustomerStatusId FROM Customers WHERE CustomerStatusId = @p0 ORDER BY Name ASC", CustomerStatus.Active); var paged = sqlDialect.PageQuery(sqlQuery, PagingOptions.ForPage(page: 1, resultsPerPage: 25)); Assert.Equal("SELECT CustomerId, Name, DateOfBirth, CustomerStatusId FROM Customers WHERE CustomerStatusId = @p0 ORDER BY Name ASC LIMIT @p1,@p2", paged.CommandText); Assert.Equal(sqlQuery.Arguments[0], paged.Arguments[0]); Assert.Equal(DbType.Int32, paged.Arguments[1].DbType); Assert.Equal(0, paged.Arguments[1].Value); Assert.Equal(DbType.Int32, paged.Arguments[2].DbType); Assert.Equal(25, paged.Arguments[2].Value); }
public void PageQueryThrowsArgumentNullExceptionForNullSqlCharacters() { var sqlDialect = new MySqlDialect(); var exception = Assert.Throws <ArgumentNullException>( () => sqlDialect.PageQuery(null, PagingOptions.None)); }
private void Init(DbType dbType) { ISqlDialect dialect = null; switch (dbType) { case DbType.SQLServer: dialect = new SqlServerDialect(); break; case DbType.Oracle: dialect = new OracleDialect(); break; case DbType.DB2: dialect = new DB2DialectCustom(); break; case DbType.MySQL: dialect = new MySqlDialect(); break; default: throw new NotSupportedException("dbType"); } Config = new IdentityServerDapperExtensionsConfiguration(this, dialect); SqlGenerator = new SqlGeneratorImpl(Config); Db = new Database(Connection, SqlGenerator); }
public void GetTableName() { var dialect = new MySqlDialect(); Assert.Equal("`schema`.`table` AS `t`", dialect.GetTableName("schema", "table", "t")); Assert.Equal("`table`", dialect.GetTableName(null, "table", null)); }
public void QuoteString() { var dialect = new MySqlDialect(); Assert.Equal("`value`", dialect.QuoteString("value")); Assert.Equal("`value`", dialect.QuoteString("`value`")); }
public void IsQuoted() { var dialect = new MySqlDialect(); Assert.True(dialect.IsQuoted("`value`")); Assert.False(dialect.IsQuoted("`value")); }
/// <summary> /// Gets the Dapper Extensions Implementation /// </summary> public static IDapperImplementor Instance(DataBaseType dbType = DefaultDBType) { IDapperImplementor instance; if (!_instanceList.TryGetValue(dbType, out instance)) { ISqlDialect sqlDialect; switch (dbType) { case DataBaseType.SqlServer: sqlDialect = new SqlServerDialect(); break; case DataBaseType.Oracle: sqlDialect = new OracleDialect(); break; case DataBaseType.MySql: sqlDialect = new MySqlDialect(); break; default: sqlDialect = new SqlServerDialect(); break; } IDapperExtensionConfiguration iDapperExtensionsConfiguration = new DapperExtensionConfiguration( typeof(AutoClassMapper <>), new List <Assembly>(), sqlDialect ); instance = InstanceFactory(iDapperExtensionsConfiguration, dbType); _instanceList[dbType] = instance; } if (null == _DapperImplementor || _DapperImplementor.DbType != dbType) { _DapperImplementor = instance; } return(instance); }
private DapperConfiguration() { AllConnectionStrings = GetAllConnectionStrings(); Assemblies = GetEntityAssemblies(); DefaultConnectionStringName = "DefaultConnectionString"; DefaultMapper = typeof(AutoClassMapper <>); //TODO可以做配置 Dialect = new MySqlDialect(); //TODO可以做配置 }
public void FormatParameterName_ReturnsFormattedParameterName() { var expected = "?Parameter"; var dialect = new MySqlDialect(); var actual = dialect.FormatParameterName("Parameter"); Assert.Equal(expected, actual); }
public void FormatIdentifier_ReturnsFormattedTableName() { var expected = "`Users`"; var dialect = new MySqlDialect(); var actual = dialect.FormatIdentifier("Users"); Assert.Equal(expected, actual); }
public void GetTableNameShouldThrowsExceptionIfTableNameIsNullOrEmpty(string tableName) { var dialect = new MySqlDialect(); Assert.Throws <ArgumentNullException>("tableName", () => { dialect.GetTableName("scheme", tableName, "t"); }); }
public void BuildSelectInsertIdSqlQuery() { var sqlDialect = new MySqlDialect(); var sqlQuery = sqlDialect.BuildSelectInsertIdSqlQuery(ObjectInfo.For(typeof(Customer))); Assert.Equal("SELECT LAST_INSERT_ID()", sqlQuery.CommandText); Assert.Equal(0, sqlQuery.Arguments.Count); }
public void GetPagingSql() { var dialect = new MySqlDialect(); var dictionary = new Dictionary <string, object>(); Assert.Equal("select * from TestEntity LIMIT @firstResult, @maxResults", dialect.GetPagingSql("select * from TestEntity", 2, 10, dictionary)); Assert.Equal(20, dictionary["@firstResult"]); Assert.Equal(10, dictionary["@maxResults"]); }
public static void QuoteIdentifier_GivenNameWithBacktick_ReturnsQuotedIdentifier() { const string input = "test`table"; const string expected = "`test``table`"; var dialect = new MySqlDialect(); var result = dialect.QuoteIdentifier(input); Assert.That(result, Is.EqualTo(expected)); }
public void WriteLimit_WithNullOffset_WritesLimitWithCountOnly() { var expected = "LIMIT 10"; var dialect = new MySqlDialect(); var builder = new StringBuilder(); using (TestSqlWriter writer = new TestSqlWriter(builder, dialect)) { dialect.WriteLimit(writer, null, 10); } var actual = builder.ToString(); Assert.Equal(expected, actual); }
public void PageWithNoWhereOrOrderBySecondResultsPage() { var sqlDialect = new MySqlDialect(); var sqlQuery = new SqlQuery("SELECT CustomerId, Name, DateOfBirth, CustomerStatusId FROM Customers"); var paged = sqlDialect.PageQuery(sqlQuery, PagingOptions.ForPage(page: 2, resultsPerPage: 25)); Assert.Equal("SELECT CustomerId, Name, DateOfBirth, CustomerStatusId FROM Customers LIMIT @p0,@p1", paged.CommandText); Assert.Equal(DbType.Int32, paged.Arguments[0].DbType); Assert.Equal(25, paged.Arguments[0].Value); Assert.Equal(DbType.Int32, paged.Arguments[1].DbType); Assert.Equal(25, paged.Arguments[1].Value); }
public void PageNonQualifiedWildcardQuery() { var sqlDialect = new MySqlDialect(); var sqlQuery = new SqlQuery("SELECT * FROM Customers"); var paged = sqlDialect.PageQuery(sqlQuery, PagingOptions.ForPage(page: 1, resultsPerPage: 25)); Assert.Equal("SELECT * FROM Customers LIMIT @p0,@p1", paged.CommandText); Assert.Equal(DbType.Int32, paged.Arguments[0].DbType); Assert.Equal(0, paged.Arguments[0].Value); Assert.Equal(DbType.Int32, paged.Arguments[1].DbType); Assert.Equal(25, paged.Arguments[1].Value); }
public void UpdateInstanceQuery() { ObjectInfo.MappingConvention = new ConventionMappingConvention( UnitTest.GetConventionMappingSettings(IdentifierStrategy.Assigned)); var sqlDialect = new MySqlDialect(); var customer = new Customer { Created = new DateTime(2011, 12, 24), CreditLimit = 10500.00M, DateOfBirth = new System.DateTime(1975, 9, 18), Id = 134875, Name = "Joe Bloggs", Status = CustomerStatus.Active, Updated = DateTime.Now, Website = new Uri("http://microliteorm.wordpress.com") }; var sqlQuery = sqlDialect.BuildUpdateSqlQuery(ObjectInfo.For(typeof(Customer)), customer); Assert.Equal("UPDATE `Sales`.`Customers` SET `CreditLimit` = @p0,`DateOfBirth` = @p1,`Name` = @p2,`CustomerStatusId` = @p3,`Updated` = @p4,`Website` = @p5 WHERE (`Id` = @p6)", sqlQuery.CommandText); Assert.Equal(7, sqlQuery.Arguments.Count); Assert.Equal(DbType.Decimal, sqlQuery.Arguments[0].DbType); Assert.Equal(customer.CreditLimit, sqlQuery.Arguments[0].Value); Assert.Equal(DbType.DateTime, sqlQuery.Arguments[1].DbType); Assert.Equal(customer.DateOfBirth, sqlQuery.Arguments[1].Value); Assert.Equal(DbType.String, sqlQuery.Arguments[2].DbType); Assert.Equal(customer.Name, sqlQuery.Arguments[2].Value); Assert.Equal(DbType.Int32, sqlQuery.Arguments[3].DbType); Assert.Equal((int)customer.Status, sqlQuery.Arguments[3].Value); Assert.Equal(DbType.DateTime, sqlQuery.Arguments[4].DbType); Assert.Equal(customer.Updated, sqlQuery.Arguments[4].Value); Assert.Equal(DbType.String, sqlQuery.Arguments[5].DbType); Assert.Equal("http://microliteorm.wordpress.com/", sqlQuery.Arguments[5].Value); Assert.Equal(DbType.Int32, sqlQuery.Arguments[6].DbType); Assert.Equal(customer.Id, sqlQuery.Arguments[6].Value); }
private Database CreateDatabase() { ISqlDialect sqlDialect = null; IDbConnection connection = null; switch (_dataBaseType.ToLower()) { case "mysql": { connection = new MySqlConnection(_connectionString); sqlDialect = new MySqlDialect(); } break; case "sqlserver": { connection = new SqlConnection(_connectionString); sqlDialect = new SqlServerDialect(); } break; case "oracle": { } break; case "sqlite": { //connection = new SQLiteConnection(_connectionString); sqlDialect = new SqliteDialect(); } break; default: break; } var config = new DapperExtensionsConfiguration(typeof(AutoClassMapper <>), new List <Assembly>(), sqlDialect); var sqlGenerator = new SqlGeneratorImpl(config); //if (connection.State != ConnectionState.Open) // connection.Open(); return(new Database(connection, sqlGenerator)); }
public void InsertInstanceQueryForIdentifierStrategyDbGenerated() { ObjectInfo.MappingConvention = new ConventionMappingConvention( UnitTest.GetConventionMappingSettings(IdentifierStrategy.DbGenerated)); var sqlDialect = new MySqlDialect(); var customer = new Customer { Created = new DateTime(2011, 12, 24), CreditLimit = 10500.00M, DateOfBirth = new System.DateTime(1975, 9, 18), Name = "Joe Bloggs", Status = CustomerStatus.Active, Updated = DateTime.Now, Website = new Uri("http://microliteorm.wordpress.com") }; var sqlQuery = sqlDialect.BuildInsertSqlQuery(ObjectInfo.For(typeof(Customer)), customer); Assert.Equal("INSERT INTO `Sales`.`Customers` (`Created`,`CreditLimit`,`DateOfBirth`,`Name`,`CustomerStatusId`,`Website`) VALUES (@p0,@p1,@p2,@p3,@p4,@p5)", sqlQuery.CommandText); Assert.Equal(6, sqlQuery.Arguments.Count); Assert.Equal(DbType.DateTime, sqlQuery.Arguments[0].DbType); Assert.Equal(customer.Created, sqlQuery.Arguments[0].Value); Assert.Equal(DbType.Decimal, sqlQuery.Arguments[1].DbType); Assert.Equal(customer.CreditLimit, sqlQuery.Arguments[1].Value); Assert.Equal(DbType.DateTime, sqlQuery.Arguments[2].DbType); Assert.Equal(customer.DateOfBirth, sqlQuery.Arguments[2].Value); Assert.Equal(DbType.String, sqlQuery.Arguments[3].DbType); Assert.Equal(customer.Name, sqlQuery.Arguments[3].Value); Assert.Equal(DbType.Int32, sqlQuery.Arguments[4].DbType); Assert.Equal((int)customer.Status, sqlQuery.Arguments[4].Value); Assert.Equal(DbType.String, sqlQuery.Arguments[5].DbType); Assert.Equal("http://microliteorm.wordpress.com/", sqlQuery.Arguments[5].Value); }
public static ISqlDialect ConvertESqlDialect(ESqlDialect sqlDialect) { ISqlDialect SqlDialect = null; switch (sqlDialect) { case ESqlDialect.DB2: SqlDialect = new DB2Dialect(); break; case ESqlDialect.MySQL: SqlDialect = new MySqlDialect(); break; case ESqlDialect.Oracle: SqlDialect = new OracleDialect(); break; case ESqlDialect.PostgreSql: SqlDialect = new PostgreSqlDialect(); break; case ESqlDialect.SqlCe: SqlDialect = new SqlCeDialect(); break; case ESqlDialect.Sqlite: SqlDialect = new SqliteDialect(); break; case ESqlDialect.SqlServer: SqlDialect = new SqlServerDialect(); break; } return(SqlDialect); }
public static void QuoteName_GivenNullOrWhiteSpaceName_ThrowsArgumentNullException(string name) { var dialect = new MySqlDialect(); Assert.That(() => dialect.QuoteName(name), Throws.ArgumentNullException); }
public static void QuoteIdentifier_GivenNullOrWhiteSpaceIdentifier_ThrowsArgumentNullException(string identifier) { var dialect = new MySqlDialect(); Assert.That(() => dialect.QuoteIdentifier(identifier), Throws.ArgumentNullException); }
/// <summary> /// 活动Dapper扩展对象的实例 /// </summary> /// <param name="dbType">DB类型,默认SqlServer</param> /// <param name="ormMapperAssemblyList">ORM映射的程序集</param> /// <returns></returns> public static IDapperImplementor Instance(DataBaseType dbType = DefaultDBType, List <string> ormMapperAssemblyList = null) { IDapperImplementor instance; if (!_instanceList.TryGetValue(dbType, out instance)) { ISqlDialect sqlDialect; switch (dbType) { case DataBaseType.SqlServer: sqlDialect = new SqlServerDialect(); break; case DataBaseType.Oracle: sqlDialect = new OracleDialect(); break; case DataBaseType.MySql: sqlDialect = new MySqlDialect(); break; default: sqlDialect = new SqlServerDialect(); break; } List <Assembly> assemblyList = new List <Assembly>(); if (ormMapperAssemblyList != null) { foreach (var item in ormMapperAssemblyList) { assemblyList.Add(Assembly.Load(item)); } } else { if (!string.IsNullOrEmpty(ormMapperAssemblyStr)) { foreach (var item in ormMapperAssemblyStr.Split(';')) { if (!string.IsNullOrEmpty(item)) { assemblyList.Add(Assembly.Load(item)); } } } } IDapperExtensionConfiguration iDapperExtensionsConfiguration = new DapperExtensionConfiguration( typeof(AutoClassMapper <>), assemblyList, sqlDialect ); instance = InstanceFactory(iDapperExtensionsConfiguration, dbType); _instanceList[dbType] = instance; } if (!IsEnabledMultipleDBType) { if (null == _DapperImplementor) { _DapperImplementor = instance; } } else { if (null == _DapperImplementor_MultipleDBType || _DapperImplementor_MultipleDBType.DbType != dbType) { _DapperImplementor_MultipleDBType = instance; } } return(instance); }
public void SetUp() { _dialect = new MySqlDialect(); }
public MySqlDialectDataTests() { _dialect = new MySqlDialect(); }
static MySqlBulkCopy() { Dialect = new MySqlDialect(); }
public void SupportsSelectInsertedIdentifierReturnsTrue() { var sqlDialect = new MySqlDialect(); Assert.True(sqlDialect.SupportsSelectInsertedIdentifier); }