using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Models { public enum EnumExpression { /// /// 相似 /// like=1, /// /// 包含 /// In=2, } public class EExpression { public EExpression(string data, string operation, string checkData) { this.Data = data; this.Operation = operation; this.CheckData = checkData; } public EExpression(string data, string operation, int checkData) { this.Data = data; this.Operation = operation; this.CheckData = checkData; } public EExpression(string data, EnumExpression operation, string checkData) { this.Data = data; this.Operation = operation; this.CheckData = checkData; } public EExpression(string data, EnumExpression operation, List checkData) { this.Data = data; this.Operation = operation; this.CheckData = checkData; } public EExpression(string data, EnumExpression operation, List checkData) { this.Data = data; this.Operation = operation; this.CheckData = checkData; } private Object Data { get; set; } private object Operation { get; set; } private Object CheckData { get; set; } /// /// 返回例子: "2 > 1"; /// /// public string GetSql() { string sql = string.Empty; if (CheckData.GetType()==typeof(int)&& Operation.GetType() == typeof(string)) { sql= string.Format("{0} {1}{2}", Data, Operation, CheckData); } else if (CheckData.GetType() == typeof(string)&& Operation.GetType() == typeof(string)) { sql= string.Format("{0} {1}'{2}'", Data, Operation, CheckData); } else if (Operation.GetType() == typeof(EnumExpression)) { if (((EnumExpression)Operation)==EnumExpression.like) { sql = string.Format("{0} like '{1}'", Data, CheckData); } if (((EnumExpression)Operation) == EnumExpression.In) { if (CheckData.GetType()==typeof(List)) { var data = CheckData as List; sql = string.Format("{0} in ({1})", Data, string.Join(",", data)); } else if (CheckData.GetType() == typeof(List)) { List data = CheckData as List; List sqllist = new List(); for (int i = 0; i < data.Count; i++) { sqllist.Add("'" + data[i] + "'") ; } sql = string.Format("{0} in ({1}) ", Data, string.Join(",", sqllist)); } } } return sql; } } }