public MySqlMethodCallTranslatorProvider(
            [NotNull] RelationalMethodCallTranslatorProviderDependencies dependencies,
            [NotNull] IRelationalTypeMappingSource typeMappingSource,
            [NotNull] IMySqlOptions options)
            : base(dependencies)
        {
            var sqlExpressionFactory = (MySqlSqlExpressionFactory)dependencies.SqlExpressionFactory;
            var jsonTranslator       = new MySqlJsonPocoTranslator(typeMappingSource, sqlExpressionFactory);

            AddTranslators(new IMethodCallTranslator[]
            {
                new MySqlArrayTranslator(sqlExpressionFactory, jsonTranslator),
                new MySqlConvertTranslator(sqlExpressionFactory),
                new MySqlDateTimeMethodTranslator(sqlExpressionFactory),
                new MySqlDateDiffFunctionsTranslator(sqlExpressionFactory),
                new MySqlMathMethodTranslator(sqlExpressionFactory),
                new MySqlNewGuidTranslator(sqlExpressionFactory),
                new MySqlObjectToStringTranslator(sqlExpressionFactory),
                new MySqlStringMethodTranslator(sqlExpressionFactory),
                new MySqlStringComparisonMethodTranslator(sqlExpressionFactory),
                new MySqlRegexIsMatchTranslator(sqlExpressionFactory),
                new MySqlDbFunctionsExtensionsMethodTranslator(sqlExpressionFactory, options),
                new MySqlJsonDomTranslator(sqlExpressionFactory, typeMappingSource),
                new MySqlJsonDbFunctionsTranslator(sqlExpressionFactory, typeMappingSource, options)
            });
        }
 public MySqlJsonMicrosoftDomTranslator(
     [NotNull] MySqlSqlExpressionFactory sqlExpressionFactory,
     [NotNull] IRelationalTypeMappingSource typeMappingSource,
     [NotNull] MySqlJsonPocoTranslator jsonPocoTranslator)
 {
     _sqlExpressionFactory = sqlExpressionFactory;
     _typeMappingSource    = typeMappingSource;
     _jsonPocoTranslator   = jsonPocoTranslator;
 }
        //private readonly RelationalTypeMapping _jsonTypeMapping;

        public MySqlSqlTranslatingExpressionVisitor(
            RelationalSqlTranslatingExpressionVisitorDependencies dependencies,
            IModel model,
            QueryableMethodTranslatingExpressionVisitor queryableMethodTranslatingExpressionVisitor)
            : base(dependencies, model, queryableMethodTranslatingExpressionVisitor)
        {
            _jsonPocoTranslator   = ((MySqlMemberTranslatorProvider)Dependencies.MemberTranslatorProvider).JsonPocoTranslator;
            _sqlExpressionFactory = (MySqlSqlExpressionFactory)Dependencies.SqlExpressionFactory;
            //_jsonTypeMapping = _sqlExpressionFactory.FindMapping("json");
        }
        public MySqlMemberTranslatorProvider([NotNull] RelationalMemberTranslatorProviderDependencies dependencies,
                                             [NotNull] IRelationalTypeMappingSource typeMappingSource)
            : base(dependencies)
        {
            var sqlExpressionFactory = (MySqlSqlExpressionFactory)dependencies.SqlExpressionFactory;

            JsonPocoTranslator = new MySqlJsonPocoTranslator(typeMappingSource, sqlExpressionFactory);

            AddTranslators(
                new IMemberTranslator[] {
                new MySqlDateTimeMemberTranslator(sqlExpressionFactory),
                new MySqlStringMemberTranslator(sqlExpressionFactory),
                new MySqlJsonDomTranslator(sqlExpressionFactory, typeMappingSource),
                JsonPocoTranslator,
            });
        }