public bool Exists <T>(Expression <Func <T, bool> > condition) where T : class, new() { using (IExpressionCondition expression = db.GetExpressionCondition(condition)) { string sql = $"SELECT 0 WHERE EXISTS(SELECT 0 FROM {typeof(T).GetTableName()} { expression.ToCondition(out DynamicParameters parameters)} );"; return(db.ExecuteScalar(CommandType.Text, sql, parameters) != null); } }
public int Delete <T>(Expression <Func <T, bool> > condition) where T : class, new() { using (IExpressionCondition expression = db.GetExpressionCondition(condition)) { string sql = $"DELETE FROM [{typeof(T).GetTableName()}] { expression.ToCondition(out DynamicParameters parameters) }"; return(db.ExecuteNonQuery(CommandType.Text, sql, parameters)); } }
public int Count <T>(Expression <Func <T, bool> > condition) where T : class, new() { using (IExpressionCondition expression = db.GetExpressionCondition(condition)) { string sql = $"SELECT COUNT(0) FROM [{typeof(T).GetTableName()}] { expression.ToCondition(out DynamicParameters parameters)} "; object value = db.ExecuteScalar(CommandType.Text, sql, parameters); return(value == null ? 0 : (int)value); } }
public TValue ReadInfo <T, TValue>(Expression <Func <T, TValue> > field, Expression <Func <T, bool> > condition) where T : class, new() { using (IExpressionCondition expression = db.GetExpressionCondition(condition)) { string conditionSql = expression.ToCondition(out DynamicParameters parameters); string sql = $"SELECT { SchemaCache.GetColumnProperty(field).Name } FROM {typeof(T).GetTableName()} {conditionSql} LIMIT 0,1;"; object value = db.ExecuteScalar(CommandType.Text, sql, parameters); if (value == null) { return(default);
public IDataReader ReadData <T>(Expression <Func <T, bool> > condition, params Expression <Func <T, object> >[] fields) where T : class, new() { string field = string.Join(",", SchemaCache.GetColumns(fields).Select(t => $"{t.Name}")); using (IExpressionCondition expression = db.GetExpressionCondition(condition)) { string conditionSql = expression.ToCondition(out DynamicParameters parameters); string sql = $"SELECT {field} FROM {typeof(T).GetTableName()} {conditionSql};"; return(db.ReadData(CommandType.Text, sql, parameters)); } }
/// <summary> /// 读取一个字段 /// </summary> /// <typeparam name="T"></typeparam> /// <typeparam name="TValue"></typeparam> /// <param name="field"></param> /// <param name="condition"></param> /// <returns></returns> public IEnumerable <TValue> ReadList <T, TValue>(Expression <Func <T, TValue> > field, Expression <Func <T, bool> > condition) where T : class, new() { string fieldName = SchemaCache.GetColumnProperty(field).Name; List <TValue> list = new List <TValue>(); using (IExpressionCondition expression = db.GetExpressionCondition(condition)) { string conditionSql = expression.ToCondition(out DynamicParameters parameters); string sql = $"SELECT [{fieldName}] FROM [{typeof(T).GetTableName()}] {conditionSql}"; IDataReader reader = db.ReadData(CommandType.Text, sql, parameters); while (reader.Read()) { list.Add((TValue)reader[0]); } if (!reader.IsClosed) { reader.Close(); } } return(list); }