update dapper查询

This commit is contained in:
2021-05-31 14:54:26 +08:00
parent 48d8adb9ba
commit d5bee93c24
2 changed files with 34 additions and 24 deletions

View File

@@ -25,32 +25,19 @@ namespace Ewide.Core
/// </summary> /// </summary>
public string Type { get; set; } public string Type { get; set; }
private string _QueryTypeStr;
public QueryTypeEnum QueryType public QueryTypeEnum QueryType
{ {
get get
{ {
switch (_QueryTypeStr) return Type switch
{ {
case "=": "=" or "equal" => QueryTypeEnum.Equal,
case "equal": "<" or "lessthan" => QueryTypeEnum.LessThan,
return QueryTypeEnum.Equal; "<=" or "lessthanorequal" => QueryTypeEnum.LessThanOrEqual,
case "<": ">" or "greaterthan" => QueryTypeEnum.GreaterThan,
case "lessthan": ">=" or "greaterthanorequal" => QueryTypeEnum.GreaterThanOrEqual,
return QueryTypeEnum.LessThan; _ => QueryTypeEnum.Like,
case "<=": };
case "lessthanorequal":
return QueryTypeEnum.LessThanOrEqual;
case ">":
case "greaterthan":
return QueryTypeEnum.GreaterThan;
case ">=":
case "greaterthanorequal":
return QueryTypeEnum.GreaterThanOrEqual;
default:
return QueryTypeEnum.Like;
}
} }
} }
@@ -60,7 +47,6 @@ namespace Ewide.Core
public SearchInfo() public SearchInfo()
{ {
Value = new List<string>(); Value = new List<string>();
_QueryTypeStr = Type;
} }
} }
} }

View File

@@ -45,7 +45,9 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
List<string> whereSqls = new List<string>(); List<string> whereSqls = new List<string>();
foreach (var elem in searchInfoList.Where(m => m != null)) foreach (var elem in searchInfoList.Where(m => m != null))
{ {
whereSqls.Add(GetWhereSqlBuild(elem)); var r = GetWhereSqlBuild(elem);
if (String.IsNullOrWhiteSpace(r)) continue;
whereSqls.Add(r);
} }
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();
@@ -64,10 +66,12 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
List<string> whereList = new List<string>(); List<string> whereList = new List<string>();
foreach (var elem in searchInfo.Value) foreach (var elem in searchInfo.Value)
{ {
if (String.IsNullOrWhiteSpace(elem)) continue;
var parameterName = "@" + searchInfo.Field + Guid.NewGuid().ToString("N"); var parameterName = "@" + searchInfo.Field + Guid.NewGuid().ToString("N");
//AddParameter(parameterName, elem); //AddParameter(parameterName, elem);
sqlParameters.Add(parameterName, QueryTypeEnum.Like == searchInfo.QueryType ? "%" + elem + "%" : elem); sqlParameters.Add(parameterName, QueryTypeEnum.Like == searchInfo.QueryType ? "%" + elem + "%" : elem);
whereList.Add(String.Format(sqlT, searchInfo.Field, searchInfo.Type, parameterName)); whereList.Add(String.Format(sqlT, searchInfo.Field, GetSearchOperatorStr(searchInfo.QueryType), parameterName));
} }
if (whereList.Count == 0) return String.Empty; if (whereList.Count == 0) return String.Empty;
var resultT = "({0})"; var resultT = "({0})";
@@ -75,6 +79,26 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
return result; return result;
} }
private string GetSearchOperatorStr(QueryTypeEnum searchOperator)
{
switch (searchOperator)
{
case QueryTypeEnum.GreaterThan:
return ">";
case QueryTypeEnum.GreaterThanOrEqual:
return ">=";
case QueryTypeEnum.LessThan:
return "<";
case QueryTypeEnum.LessThanOrEqual:
return "<=";
case QueryTypeEnum.Like:
return " LIKE ";
default:
return "=";
}
}
private void AddParameter(string key, object value) private void AddParameter(string key, object value)
{ {
//var parameter = _SqlParameters.ParameterNames.FirstOrDefault(m => m == key); //var parameter = _SqlParameters.ParameterNames.FirstOrDefault(m => m == key);