protected virtual MySqlDefaultDataTypeMappings ApplyDefaultDataTypeMappings(MySqlDefaultDataTypeMappings defaultDataTypeMappings, MimerConnectionSettings connectionSettings) { defaultDataTypeMappings ??= DefaultDataTypeMappings; if (connectionSettings.TreatTinyAsBoolean) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrBoolean(MySqlBooleanType.TinyInt1); } else if (defaultDataTypeMappings.ClrBoolean != MySqlBooleanType.Bit1 && defaultDataTypeMappings.ClrBoolean != MySqlBooleanType.None) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrBoolean(MySqlBooleanType.Bit1); } return(defaultDataTypeMappings); }
protected virtual MySqlDefaultDataTypeMappings ApplyDefaultDataTypeMappings(MySqlDefaultDataTypeMappings defaultDataTypeMappings, MySqlConnectionSettings connectionSettings) { defaultDataTypeMappings ??= DefaultDataTypeMappings; if (connectionSettings.TreatTinyAsBoolean || defaultDataTypeMappings.ClrBoolean == MySqlBooleanType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrBoolean(MySqlBooleanType.TinyInt1); } else if (defaultDataTypeMappings.ClrBoolean != MySqlBooleanType.Bit1 && defaultDataTypeMappings.ClrBoolean != MySqlBooleanType.None) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrBoolean(MySqlBooleanType.Bit1); } if (defaultDataTypeMappings.ClrDateTime == MySqlDateTimeType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrDateTime( ServerVersion.SupportsDateTime6 ? MySqlDateTimeType.DateTime6 : MySqlDateTimeType.DateTime); } if (defaultDataTypeMappings.ClrDateTimeOffset == MySqlDateTimeType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrDateTimeOffset( ServerVersion.SupportsDateTime6 ? MySqlDateTimeType.DateTime6 : MySqlDateTimeType.DateTime); } if (defaultDataTypeMappings.ClrTimeSpan == MySqlTimeSpanType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrTimeSpan( ServerVersion.SupportsDateTime6 ? MySqlTimeSpanType.Time6 : MySqlTimeSpanType.Time); } return(defaultDataTypeMappings); }
protected virtual MySqlDefaultDataTypeMappings ApplyDefaultDataTypeMappings(MySqlDefaultDataTypeMappings defaultDataTypeMappings, MySqlConnectionSettings connectionSettings) { defaultDataTypeMappings ??= DefaultDataTypeMappings; // Explicitly set MySqlDefaultDataTypeMappings values take precedence over connection string options. if (connectionSettings.TreatTinyAsBoolean.HasValue && defaultDataTypeMappings.ClrBoolean == MySqlBooleanType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrBoolean( connectionSettings.TreatTinyAsBoolean.Value ? MySqlBooleanType.TinyInt1 : MySqlBooleanType.Bit1); } if (defaultDataTypeMappings.ClrDateTime == MySqlDateTimeType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrDateTime( ServerVersion.Supports.DateTime6 ? MySqlDateTimeType.DateTime6 : MySqlDateTimeType.DateTime); } if (defaultDataTypeMappings.ClrDateTimeOffset == MySqlDateTimeType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrDateTimeOffset( ServerVersion.Supports.DateTime6 ? MySqlDateTimeType.DateTime6 : MySqlDateTimeType.DateTime); } if (defaultDataTypeMappings.ClrTimeSpan == MySqlTimeSpanType.Default) { defaultDataTypeMappings = defaultDataTypeMappings.WithClrTimeSpan( ServerVersion.Supports.DateTime6 ? MySqlTimeSpanType.Time6 : MySqlTimeSpanType.Time); } return(defaultDataTypeMappings); }