public DbParamInfo GetDeleteDbParamInfo(Expression <Func <T, bool> > expression = null) { T curmodel = ContextEntity; if (curmodel == null) { curmodel = this as T; } List <DbFieldInfo> keList = null; var hasIdentity = false; var paList = new List <DbParameter>(); if (expression != null) { ClearArguments(); var exp = new SqlLmdResolver(DbWriteConfig); exp.ParaIndex = _paraIndex; exp.ResolveExpression(expression); _paraIndex = exp.ParaIndex; _WhereBuilder.Append(exp.SqlWhere); _Parameters.AddRange(exp.Parameters); } if (_WhereBuilder == null || _WhereBuilder.Length == 0) { if (curmodel == null) { throw new Exception("当前实体参数ContextEntity为空!"); } var fieldList = ConvertFields(curmodel); keList = fieldList.FindAll(m => m.IsPrimaryKey); hasIdentity = fieldList.Exists(m => m.IsIdentity); } var sbAndWhere = new StringBuilder(); sbAndWhere.Append(" where 1=1 "); if (keList != null) { foreach (var param in keList) { sbAndWhere.Append(string.Concat(" and [", param.Name, "]=@", param.Name)); paList.Add(DbProvider.MakeParam(DbWriteConfig, "@" + param.Name, param.Value)); } } if (_WhereBuilder != null) { sbAndWhere.Append(_WhereBuilder.ToString()); } if (_Parameters != null) { paList.AddRange(_Parameters.ToArray()); } var sql = "delete from " + TableName + " " + sbAndWhere.ToString(); return(new DbParamInfo(sql, paList.ToArray())); }
public BaseMapper <T> Query(Expression <Func <T, bool> > expression = null) { ClearArguments(); var exp = new SqlLmdResolver(DbReadConfig); exp.ParaIndex = _paraIndex; exp.ResolveExpression(expression); _paraIndex = exp.ParaIndex; _WhereBuilder.Append(exp.SqlWhere); _Parameters.AddRange(exp.Parameters); return(this); }
public BaseMapper <T> Or(Expression <Func <T, bool> > expression) { if (expression == null) { return(this); } var exp = new SqlLmdResolver(DbReadConfig); exp.ParaIndex = _paraIndex; exp.ResolveExpression(expression, SqlWhereType.Or); _paraIndex = exp.ParaIndex; _WhereBuilder.Append(exp.SqlWhere); _Parameters.AddRange(exp.Parameters); return(this); }
private BaseMapper <T> BuildCondition(Expression <Func <T, bool> > expression, DbConfig config) { ClearArguments(); if (expression == null) { return(this); } var exp = new SqlLmdResolver(config); exp.ParaIndex = _paraIndex; exp.ResolveExpression(expression); _paraIndex = exp.ParaIndex; _WhereBuilder.Append(exp.SqlWhere); _Parameters.AddRange(exp.Parameters); return(this); }