//Overrides the binding process so we can use the correct database types public override void BindParameters(DbCommand command, List <Parameter> results) { if (results != null) { //Morphs the command object intot he sql version MySqlCommand sqlCommand = command as MySqlCommand; foreach (Parameter param in results) { //Overrides the binding if its an sp variable string bindingStart = (sqlCommand.CommandType == CommandType.StoredProcedure) ? "" : InternalDatabaseBinding; string bindingDefinition = $"{bindingStart}{param.BindingName}"; sqlCommand.Parameters.AddWithValue(bindingDefinition, (param.Value ?? DBNull.Value)); if (param.Value != null) { if (param.DatabaseType != null) { MySQLDatabaseType dbType = param.DatabaseType as MySQLDatabaseType; sqlCommand.Parameters[bindingDefinition].MySqlDbType = dbType.MySQLDBType.Value; } else//Use our automatic conversion system { MySqlDbType?dbType = BindingConvertor.ToMySqlDbType(param.Type); if (dbType.HasValue) { sqlCommand.Parameters[bindingDefinition].MySqlDbType = dbType.Value; } } } } } }
public IGSCloudProvider BuildInfrastructure(IGSCloudProvider iGSCloudProvider, string infrastructureName) { var windowsVirtualMachine = new WindowsVirtualMachineType(); var mySQLDatabase = new MySQLDatabaseType(); iGSCloudProvider.CreateInfrastructure(infrastructureName) .AddVirtualMachine(windowsVirtualMachine) .AddDatabase(mySQLDatabase); iGSCloudProvider.BuildResources(); return(iGSCloudProvider); }
public void SuccessWithTypesCheck() { var pms = new { you = "test123", AGE = 11 }; var typs = new { you = MySqlDbType.Text, AGE = MySqlDbType.Int32 }; MySQLParameterProcessor mProcessor = new MySQLParameterProcessor("@"); var parameters = mProcessor.GetParameters(query, pms, typs); Assert.IsTrue(parameters != null && parameters.Count == 2); MySQLDatabaseType youType = parameters.Where(p => p.BindingName == "you").First().DatabaseType as MySQLDatabaseType; MySQLDatabaseType AGEType = parameters.Where(p => p.BindingName == "AGE").First().DatabaseType as MySQLDatabaseType; Assert.IsTrue(youType.MySQLDBType == MySqlDbType.Text && AGEType.MySQLDBType == MySqlDbType.Int32); }
//Overrides the updating of the database type to store our MySQL version protected override void AddParameterDatabaseType(Parameter parameter, string propertyName, Type propertyType, object propertyValue) { MySQLDatabaseType databaseType = new MySQLDatabaseType(propertyName, propertyType, propertyValue); parameter.DatabaseType = databaseType; }