Esempio n. 1
0
        /// <summary>
        /// 创建查询条件并添加参数
        /// </summary>
        /// <param name="column">列名</param>
        /// <param name="value">值</param>
        /// <param name="operator">运算符</param>
        /// <returns></returns>
        public ICondition CreateCondition(string column, object value, Operator @operator)
        {
            if (string.IsNullOrWhiteSpace(column))
            {
                throw new ArgumentNullException(nameof(column));
            }

            if (_parameterManager == null)
            {
                return(null);
            }

            column = GetColumn(column);
            if (IsInCondition(@operator, value))
            {
                return(CreateInCondition(column, value as IEnumerable));
            }

            if (IsNotInCondition(@operator, value))
            {
                return(CreateInCondition(column, value as IEnumerable, true));
            }
            var paramName = GenerateParamName(value, @operator);

            _parameterManager.Add(paramName, value, @operator);
            return(SqlConditionFactory.Create(column, paramName, @operator));
        }
Esempio n. 2
0
        public void Values(Dictionary <string, object> columns)
        {
            if (columns == null || columns.Count == 0)
            {
                throw new ArgumentNullException(nameof(columns));
            }

            foreach (var kv in columns)
            {
                var paramName = _parameterManager.GenerateName();
                _parameterManager.Add(paramName, kv.Value, Datas.Queries.Operator.Equal);
                _columns.Add(kv.Key, paramName);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 创建查询条件并添加参数
        /// </summary>
        /// <param name="column">列名</param>
        /// <param name="value">值</param>
        /// <param name="operator">运算符</param>
        public ICondition CreateCondition(string column, object value, Operator @operator)
        {
            if (string.IsNullOrWhiteSpace(column))
            {
                throw new ArgumentNullException(nameof(column));
            }
            column = GetColumn(column);
            if (@operator == Operator.Contains && value != null && Reflection.IsCollection(value.GetType()))
            {
                return(CreateInCondition(column, value as IEnumerable));
            }
            var paramName = GenerateParamName(value, @operator);

            _parameterManager.Add(paramName, value, @operator);
            return(SqlConditionFactory.Create(column, paramName, @operator));
        }
        public void ParameterManager_Persistence_String()
        {
            // string
            mParamMgr.Add(new SerializableParameter("Key1", "Param1"));
            mParamMgr.Add(new SerializableParameter("Key2", "Param2"));

            var newParamMgr = CreateParameterManager(GetXml());

            Assert.True(newParamMgr.Parameters.Count() == 2);

            Assert.True(newParamMgr.Parameters.Where(x => x.DisplayName.Equals("Key1")).Count() == 1);
            Assert.True(newParamMgr.Parameters.Where(x => x.DisplayName.Equals("Key2")).Count() == 1);

            Assert.AreEqual(newParamMgr.Get("Key1").ParameterValue.GetType(), typeof(string));
            Assert.AreEqual(newParamMgr.Get("Key2").ParameterValue.GetType(), typeof(string));

            Assert.AreEqual(newParamMgr.Get("Key1").ParameterValue, "Param1");
            Assert.AreEqual(newParamMgr.Get("Key2").ParameterValue, "Param2");
        }
Esempio n. 5
0
 private void AddOrUpdateParameter(IParameterManager paramMgr, IParameter param)
 {
     if (!paramMgr.Contains(param))
     {
         paramMgr.Add(param);
     }
     else
     {
         paramMgr.Update(param);
     }
 }
Esempio n. 6
0
        /// <summary>
        /// 获取查询条件并添加参数
        /// </summary>
        /// <param name="column">列名</param>
        /// <param name="value">值</param>
        /// <param name="operator">运算符</param>
        /// <returns></returns>
        private ICondition GetCondition(string column, object value, Operator @operator)
        {
            if (string.IsNullOrWhiteSpace(column))
            {
                throw new ArgumentNullException(nameof(column));
            }
            column = GetColumn(column);
            var paramName = GetParamName();

            _parameterManager.Add(paramName, value, @operator);
            return(SqlConditionFactory.Create(column, paramName, @operator));
        }
Esempio n. 7
0
        /// <summary>
        /// 获取列
        /// </summary>
        private SqlItem GetColumn(Expression expression, bool right)
        {
            var type   = _resolver.GetType(expression, right);
            var column = _resolver.GetColumn(expression, type, right);

            if (string.IsNullOrWhiteSpace(column))
            {
                var name = _parameterManager.GenerateName();
                _parameterManager.Add(name, Lambda.GetValue(expression));
                return(new SqlItem(name, raw: true));
            }
            return(new SqlItem(GetColumn(type, column)));
        }
 public void ParameterManager_Add_ContainsKey()
 {
     mParamMgr.Add(new SerializableParameter(mKey1, mParam));
     Assert.True(mParamMgr.Contains(new SerializableParameter(mKey1, mParam)));
 }