示例#1
0
        protected MySqlDataProvider(string name, MappingSchema?mappingSchema)
            : base(
                name,
                mappingSchema != null
                                        ? new MappingSchema(mappingSchema, MySqlProviderAdapter.GetInstance(name).MappingSchema)
                                        : GetMappingSchema(name, MySqlProviderAdapter.GetInstance(name).MappingSchema),
                MySqlProviderAdapter.GetInstance(name))
        {
            SqlProviderFlags.IsDistinctOrderBySupported        = true;
            SqlProviderFlags.IsSubQueryOrderBySupported        = true;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;
            SqlProviderFlags.IsDistinctSetOperationsSupported  = false;
            SqlProviderFlags.IsUpdateFromSupported             = false;

            _sqlOptimizer = new MySqlSqlOptimizer(SqlProviderFlags);

            // configure provider-specific data readers
            if (Adapter.GetMySqlDecimalMethodName != null)
            {
                // SetProviderField is not needed for this type
                SetToTypeField(Adapter.MySqlDecimalType !, Adapter.GetMySqlDecimalMethodName, Adapter.DataReaderType);
            }

            if (Adapter.GetDateTimeOffsetMethodName != null)
            {
                SetProviderField(typeof(DateTimeOffset), Adapter.GetDateTimeOffsetMethodName, Adapter.DataReaderType);
                SetToTypeField(typeof(DateTimeOffset), Adapter.GetDateTimeOffsetMethodName, Adapter.DataReaderType);
            }

            SetProviderField(Adapter.MySqlDateTimeType, Adapter.GetMySqlDateTimeMethodName, Adapter.DataReaderType);
            SetToTypeField(Adapter.MySqlDateTimeType, Adapter.GetMySqlDateTimeMethodName, Adapter.DataReaderType);
        }
示例#2
0
        protected MySqlDataProvider(string name, MappingSchema mappingSchema)
            : base(name, mappingSchema)
        {
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;

            _sqlOptimizer = new MySqlSqlOptimizer(SqlProviderFlags);
        }
示例#3
0
        protected MySqlDataProvider(string name)
            : base(name, GetMappingSchema(name), MySqlProviderAdapter.GetInstance(name))
        {
            SqlProviderFlags.IsDistinctOrderBySupported        = false;
            SqlProviderFlags.IsSubQueryOrderBySupported        = true;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;
            SqlProviderFlags.IsDistinctSetOperationsSupported  = false;
            SqlProviderFlags.IsUpdateFromSupported             = false;
            SqlProviderFlags.IsNamingQueryBlockSupported       = true;
            SqlProviderFlags.RowConstructorSupport             = RowFeature.Equality | RowFeature.Comparisons | RowFeature.CompareToSelect | RowFeature.In;

            _sqlOptimizer = new MySqlSqlOptimizer(SqlProviderFlags);

            // configure provider-specific data readers
            if (Adapter.GetMySqlDecimalMethodName != null)
            {
                // SetProviderField is not needed for this type
                SetToTypeField(Adapter.MySqlDecimalType !, Adapter.GetMySqlDecimalMethodName, Adapter.DataReaderType);
            }

            if (Adapter.GetDateTimeOffsetMethodName != null)
            {
                SetProviderField(typeof(DateTimeOffset), Adapter.GetDateTimeOffsetMethodName, Adapter.DataReaderType);
                SetToTypeField(typeof(DateTimeOffset), Adapter.GetDateTimeOffsetMethodName, Adapter.DataReaderType);
            }

            SetProviderField(Adapter.MySqlDateTimeType, Adapter.GetMySqlDateTimeMethodName, Adapter.DataReaderType);
            SetToTypeField(Adapter.MySqlDateTimeType, Adapter.GetMySqlDateTimeMethodName, Adapter.DataReaderType);

            if (Adapter.GetTimeSpanMethodName != null)
            {
                SetProviderField(typeof(TimeSpan), Adapter.GetTimeSpanMethodName, Adapter.DataReaderType);
            }
            if (Adapter.GetSByteMethodName != null)
            {
                SetProviderField(typeof(sbyte), Adapter.GetSByteMethodName, Adapter.DataReaderType);
            }
            if (Adapter.GetUInt16MethodName != null)
            {
                SetProviderField(typeof(ushort), Adapter.GetUInt16MethodName, Adapter.DataReaderType);
            }
            if (Adapter.GetUInt32MethodName != null)
            {
                SetProviderField(typeof(uint), Adapter.GetUInt32MethodName, Adapter.DataReaderType);
            }
            if (Adapter.GetUInt64MethodName != null)
            {
                SetProviderField(typeof(ulong), Adapter.GetUInt64MethodName, Adapter.DataReaderType);
            }
#if NET6_0_OR_GREATER
            if (Adapter.GetTimeOnlyMethodName != null)
            {
                SetProviderField(typeof(TimeOnly), Adapter.GetTimeOnlyMethodName, Adapter.DataReaderType);
            }
            if (Adapter.GetDateOnlyMethodName != null)
            {
                SetProviderField(typeof(DateOnly), Adapter.GetDateOnlyMethodName, Adapter.DataReaderType);
            }
#endif
        }
示例#4
0
        protected MySqlDataProvider(string name, MappingSchema mappingSchema)
            : base(name, mappingSchema)
        {
            SqlProviderFlags.IsDistinctOrderBySupported        = true;
            SqlProviderFlags.IsSubQueryOrderBySupported        = true;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;
            SqlProviderFlags.IsDistinctSetOperationsSupported  = false;

            _sqlOptimizer = new MySqlSqlOptimizer(SqlProviderFlags);
        }
示例#5
0
 protected MySqlDataProvider(string name, MappingSchema mappingSchema)
     : base(name, mappingSchema)
 {
     _sqlOptimizer = new MySqlSqlOptimizer(SqlProviderFlags);
 }