コード例 #1
0
ファイル: SqlHelper.cs プロジェクト: MrWangzhaoyang/CustomORM
        public IEnumerable <T> Select <T>(Expression <Func <T, bool> > expression) where T : BaseModel, new()
        {
            Type type = typeof(T);
            CustomExpressionVisitor visitor = new CustomExpressionVisitor();

            visitor.Visit(expression);
            string where = visitor.GetWhere();
            string sql = $"SELECT * FROM {type.GetMappingName()} WHERE {where}";

            return(this.ExecuteSql(sql, new SqlParameter[0], comm =>
            {
                List <T> list = new List <T>();
                var reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    T t = new T();
                    foreach (var prop in type.GetProperties())
                    {
                        string propName = prop.GetMappingName();
                        prop.SetValue(t, reader[propName] is DBNull ? null : reader[propName]);
                    }
                    list.Add(t);
                }
                return list;
            }, SqlConnectionStringPool.DBOperateType.Read));
        }
コード例 #2
0
ファイル: SqlHelper.cs プロジェクト: MrWangzhaoyang/CustomORM
        public bool Delete <T>(Expression <Func <T, bool> > expression)
        {
            Type type = typeof(T);
            CustomExpressionVisitor visitor = new CustomExpressionVisitor();

            visitor.Visit(expression);
            string where = visitor.GetWhere();
            string sql = $"DELETE FROM {type.GetMappingName()} WHERE {where}";

            return(this.ExecuteSql(sql, new SqlParameter[0], comm => comm.ExecuteNonQuery() >= 1));
        }