Пример #1
0
        internal PredicateExpressionTranslator(IOptions <EntityMapperOptions> options)
        {
            Check.IfNullOrZero(options);

            _options            = options.Value;
            _parameterNameStack = new Stack <String>();
            _predicateTypeStack = new Stack <PredicateType>();

            _aliasMapper            = new List <KeyValuePair <String, String> >();
            _statementResultBuilder = new StatementResultBuilder();
        }
Пример #2
0
        /// <summary>
        /// 执行表达式翻译出的sql语句
        /// </summary>
        /// <returns></returns>
        internal ExecutorResult Execute(StatementResultBuilder statementResultBuilder)
        {
            using (statementResultBuilder)
            {
                var(sql, parameters) = statementResultBuilder.Build();
                var parametersInternal = parameters.ToArray();
                sql = ReformatSql(sql);
                var executeType = GetExecuteType(sql);
                switch (executeType)
                {
                case ExecuteType.SELECT:
                    return(_mapperDbContextBase.Select(sql, parametersInternal));

                case ExecuteType.UPDATE:
                    return(_mapperDbContextBase.Update(sql, parametersInternal));

                case ExecuteType.INSERT:
                    return(_mapperDbContextBase.Insert(sql, parametersInternal));

                default:
                    throw new InvalidOperationException($@"无效的sql语句操作{executeType}");
                }
            }
        }