public ISugarQueryable <T> SqlQueryable <T>(string sql) where T : class, new() { var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); return(this.Context.Queryable <T>().AS(sqlBuilder.GetPackTable(sql, sqlBuilder.GetDefaultShortName())).With(SqlWith.Null).Select(sqlBuilder.GetDefaultShortName() + ".*")); }
/// <summary> /// Get datebase time /// </summary> /// <returns></returns> public DateTime GetDate() { var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); return(this.Ado.GetDateTime(sqlBuilder.FullSqlDateNow)); }
protected ISugarQueryable <T> CreateQueryable <T>() { ISugarQueryable <T> result = InstanceFactory.GetQueryable <T>(this.CurrentConnectionConfig); return(CreateQueryable(result)); }
public KeyValuePair <string, SugarParameter[]> ConditionalModelToSql(List <IConditionalModel> models, int beginIndex = 0) { if (models.IsNullOrEmpty()) { return(new KeyValuePair <string, SugarParameter[]>()); } StringBuilder builder = new StringBuilder(); List <SugarParameter> parameters = new List <SugarParameter>(); var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); foreach (var model in models) { if (model is ConditionalModel) { var item = model as ConditionalModel; var index = models.IndexOf(item) + beginIndex; var type = index == 0 ? "" : "AND"; if (beginIndex > 0) { type = null; } string temp = " {0} {1} {2} {3} "; string parameterName = string.Format("{0}Conditional{1}{2}", sqlBuilder.SqlParameterKeyWord, item.FieldName, index); switch (item.ConditionalType) { case ConditionalType.Equal: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "=", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.Like: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName); parameters.Add(new SugarParameter(parameterName, "%" + item.FieldValue + "%")); break; case ConditionalType.GreaterThan: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), ">", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.GreaterThanOrEqual: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), ">=", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.LessThan: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "<", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.LessThanOrEqual: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "<=", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.In: if (item.FieldValue == null) { item.FieldValue = string.Empty; } var inValue1 = ("(" + item.FieldValue.Split(',').ToJoinSqlInVals() + ")"); builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "IN", inValue1); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.NotIn: if (item.FieldValue == null) { item.FieldValue = string.Empty; } var inValue2 = ("(" + item.FieldValue.Split(',').ToJoinSqlInVals() + ")"); builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "NOT IN", inValue2); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.LikeLeft: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue + "%")); break; case ConditionalType.LikeRight: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName); parameters.Add(new SugarParameter(parameterName, "%" + item.FieldValue)); break; case ConditionalType.NoEqual: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "<>", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.IsNullOrEmpty: builder.AppendFormat("{0} ({1}) OR ({2}) ", type, item.FieldName.ToSqlFilter() + " IS NULL ", item.FieldName.ToSqlFilter() + " = '' "); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.IsNot: if (item.FieldValue == null) { builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), " IS NOT ", "NULL"); } else { builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "<>", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); } break; default: break; } } else { var item = model as ConditionalCollections; if (item != null) { foreach (var con in item.ConditionalList) { var index = item.ConditionalList.IndexOf(con); var isFirst = index == 0; var isLast = index == (item.ConditionalList.Count - 1); if (isFirst) { builder.AppendFormat(" {0} ( ", con.Key.ToString().ToUpper()); } List <IConditionalModel> conModels = new List <IConditionalModel>(); conModels.Add(con.Value); var childSqlInfo = ConditionalModelToSql(conModels, 1000 * (1 + index)); if (!isFirst) { builder.AppendFormat(" {0} ", con.Key.ToString().ToUpper()); } builder.Append(childSqlInfo.Key); parameters.AddRange(childSqlInfo.Value); if (isLast) { builder.Append(" ) "); } else { } } } } } return(new KeyValuePair <string, SugarParameter[]>(builder.ToString(), parameters.ToArray())); }
public void RemoveCacheAll() { ReflectionInoHelper.RemoveAllCache(); InstanceFactory.RemoveCache(); }
public KeyValuePair <string, SugarParameter[]> ConditionalModelToSql(List <ConditionalModel> models) { if (models.IsNullOrEmpty()) { return(new KeyValuePair <string, SugarParameter[]>()); } StringBuilder builder = new StringBuilder(); List <SugarParameter> parameters = new List <SugarParameter>(); var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); foreach (var item in models) { var index = models.IndexOf(item); var type = index == 0 ? "" : "AND"; string temp = " {0} {1} {2} {3} "; string parameterName = string.Format("{0}Conditional{1}{2}", sqlBuilder.SqlParameterKeyWord, item.FieldName, index); switch (item.ConditionalType) { case ConditionalType.Equal: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "=", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.Like: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName); parameters.Add(new SugarParameter(parameterName, "%" + item.FieldValue + "%")); break; case ConditionalType.GreaterThan: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), ">", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.GreaterThanOrEqual: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), ">=", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.LessThan: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "<", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.LessThanOrEqual: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "<=", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.In: if (item.FieldValue == null) { item.FieldValue = string.Empty; } var inValue1 = ("(" + item.FieldValue.Split(',').ToJoinSqlInVals() + ")"); builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "IN", inValue1); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.NotIn: if (item.FieldValue == null) { item.FieldValue = string.Empty; } var inValue2 = ("(" + item.FieldValue.Split(',').ToJoinSqlInVals() + ")"); builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "NOT IN", inValue2); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.LikeLeft: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue + "%")); break; case ConditionalType.LikeRight: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "LIKE", parameterName); parameters.Add(new SugarParameter(parameterName, "%" + item.FieldValue)); break; case ConditionalType.NoEqual: builder.AppendFormat(temp, type, item.FieldName.ToSqlFilter(), "<>", parameterName); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; case ConditionalType.IsNullOrEmpty: builder.AppendFormat("{0} ({1}) OR ({2}) ", type, item.FieldName.ToSqlFilter() + " IS NULL ", item.FieldName.ToSqlFilter() + " = '' "); parameters.Add(new SugarParameter(parameterName, item.FieldValue)); break; default: break; } } return(new KeyValuePair <string, SugarParameter[]>(builder.ToString(), parameters.ToArray())); }