Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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));
     }
 }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
 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);
Esempio n. 5
0
        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));
            }
        }
Esempio n. 6
0
        /// <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);
        }