/// <summary> /// 获取表明 /// </summary> /// <param name="type">实体类型<see cref="Type"/></param> /// <returns></returns> internal static string GetTableName(this Type type, ISqlParser sqlParser) { string name; if (TypeTableName.TryGetValue(type.TypeHandle, out name)) { return(name); } //NOTE: This as dynamic trick should be able to handle both our own Table-attribute as well as the one in EntityFramework var tableAttr = type.GetTypeInfo().GetCustomAttributes(false).SingleOrDefault(attr => attr.GetType().Name == "TableAttribute") as dynamic; if (tableAttr != null) { name = $"{sqlParser.ElementLeftPrefix}{tableAttr.Name}{sqlParser.ElementRightPrefix}"; } else { name = $"{sqlParser.ElementLeftPrefix}{type.Name}s{sqlParser.ElementRightPrefix}"; if (type.GetTypeInfo().IsInterface&& name.StartsWith("I")) { name = $"{sqlParser.ElementRightPrefix}{name.Substring(1)}{sqlParser.ElementRightPrefix}"; } } TypeTableName[type.TypeHandle] = name; return(name); }
public static SqlExpression ParseDefaultValue(string expr, ISqlDialect dialect) { if (expr == null) { return(null); } if (expr.Trim() == "") { return(null); } if (dialect == null) { dialect = new GenericDialect(); } try { ISqlParser par = dialect.CreateParser(expr); par.AllowOperators = false; par.AllowSpecialConstantReplacement = true; var res = par.ParseExpression(); if (res != null && res.XmlPersistent) { return(res); } } catch { } return(new SpecificSqlExpression(expr, dialect != null ? dialect.DialectName : null, SymbolPosition.WholeString(expr))); }
internal SqlBuilder(ISqlParser dbSqlParser) { this.DbParams = new Dictionary <string, object>(); this.SelectFields = new List <string>(); this.SelectFieldsAlias = new List <string>(); this._dbSqlParser = dbSqlParser; }
public SqlDocumentRepository(ISqlParser parser, IStatementValidator validator, IDatabaseModel databaseModel, string statementText = null) { _parser = parser ?? throw new ArgumentNullException(nameof(parser)); _validator = validator ?? throw new ArgumentNullException(nameof(validator)); _databaseModel = databaseModel; if (!String.IsNullOrEmpty(statementText)) { UpdateStatements(statementText); } }
public KoraliumTransportService( SqlExecutor sqlExecutor, IServiceProvider serviceProvider, MetadataStore metadataStore, ISqlParser sqlParser, ILogger <KoraliumTransportService> logger) { _sqlExecutor = sqlExecutor; _serviceProvider = serviceProvider; _metadataStore = metadataStore; _sqlParser = sqlParser; _logger = logger; }
public SqlExecutor( ISqlParser sqlParser, TablesMetadata tablesMetadata, IQueryExecutor queryExecutor, ISearchExpressionProvider searchExpressionProvider, IOperationsProvider operationsProvider) { _sqlParser = sqlParser; _tablesMetadata = tablesMetadata; _queryExecutor = queryExecutor; _stageConverter = new StageConverter(); _searchExpressionProvider = searchExpressionProvider; _operationsProvider = operationsProvider; }
public static SqlParseResult Parse(this ISqlParser parser, Stream inputStream, Encoding encoding) { if (inputStream == null) { throw new ArgumentNullException("inputStream"); } if (!inputStream.CanRead) { throw new ArgumentException("The input stream cannot be read.", "inputStream"); } using (var reader = new StreamReader(inputStream, encoding)) { var text = reader.ReadToEnd(); return(parser.Parse(text)); } }
private ParseASTNode TowPhaseParse() { ISqlParser sqlParser = SqlParserFactory.NewInstance(_dataSourceName, _sql); try { ((Antlr4.Runtime.Parser)sqlParser).ErrorHandler = new BailErrorStrategy(); ((Antlr4.Runtime.Parser)sqlParser).Interpreter.PredictionMode = PredictionMode.LL; return((ParseASTNode)sqlParser.Parse()); } catch (ParseCanceledException ex) { ((Antlr4.Runtime.Parser)sqlParser).Reset(); ((Antlr4.Runtime.Parser)sqlParser).ErrorHandler = new DefaultErrorStrategy(); ((Antlr4.Runtime.Parser)sqlParser).Interpreter.PredictionMode = PredictionMode.LL; return((ParseASTNode)sqlParser.Parse()); } }
public void Reformat() { if (EditPropertiesForm.Run(ReformatProps, true)) { string sql = m_editor.Text; ISqlParser parser = m_dialect.CreateParser(sql); try { var code = parser.ParseCommand(); if (!parser.Tokernizer.IsEof) { throw new ParseError("DAE-00294 EOF expected"); } string res = m_dialect.GenerateScript(code.GenerateSql, ReformatProps); m_editor.SetCodeText(res, true); } catch (Exception err) { Errors.Report(err); } } }
internal SqlQueryable(ISqlParser dbSqlParser) { _mainTableName = typeof(T).GetTableName(dbSqlParser); this._sqlBuilder = new SqlBuilder(dbSqlParser); }
public static SqlParseResult Parse(this ISqlParser parser, Stream inputStream) { return(Parse(parser, inputStream, Encoding.Unicode)); }
public SqlParserTest() { _parser = new MysqlParser(); }
public SqlBatchExecutor(ISqlParser parser, ISqlExecutor sqlExecutor) { _parser = parser; _sqlExecutor = sqlExecutor; }
public SqlFileExecutor(ISqlParser parser, ISqlExecutor sqlExecutor) { _parser = parser; _sqlExecutor = sqlExecutor; }
public SelectOperation(IDbProvider provider, ISqlParser parser) { DbProvider = provider; _selectParser = parser; }
public SqlSecurityStatementTests() { context = ContextUtil.NewParseContext(); parser = context.Scope.Resolve <ISqlParser>(); }
protected SqlStatement(ISqlParser parser = null) { _parser = parser ?? new SqlParser(); }
public SqlParsing() { _sqlParser = new AntlrSqlParser(); }
public void SetParser(ISqlParser parser) { _parser = parser; }
public SqlEmbeddedResourceExecutor(ISqlParser parser, ISqlExecutor sqlExecutor) { _parser = parser; _sqlExecutor = sqlExecutor; }