/// <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)); }
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); } }
/// <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"); }
private void AddOrUpdateParameter(IParameterManager paramMgr, IParameter param) { if (!paramMgr.Contains(param)) { paramMgr.Add(param); } else { paramMgr.Update(param); } }
/// <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)); }
/// <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))); }