zoukankan      html  css  js  c++  java
  • linq 测试 from bili

                var animals = new[] {
                    new { Name="Dog",Age=3,Type1="Home" },
                    new { Name="Cat",Age=1,Type1="Home" },
                    new { Name="Wolf",Age=2,Type1="Wild" },
                    new { Name="Monkey",Age=5,Type1="Wild" },
    
               };
    
                //查询分组
    
                var result =
                    from a in animals
                    group a by a.Type1;
    
                foreach (var item in result)
                {
                    var d = item.Key;
    
                    foreach (var x in item)
                    {
                        var dd = x;
                    }
                }
    
                //使用select 
    
                var result0 =
                    from a in animals
                    group a by a.Type1 into grp
                    select grp;
    
                var result1 =
                    from a in animals
                    group a by a.Type1 into grp
                    orderby grp.Count()
                    select grp;
    
                var result2 =
                     from a in animals
                     group a by a.Type1 into grp
                     orderby grp.Count() descending
                     select grp;
    
                var result3 =
                     from a in animals
                     where a.Age > 2
                     group a by a.Type1 into grp
                     where grp.Count() > 2
                     orderby grp.Count() descending
                     select grp;
    
                var result4 =
                     from a in animals
                     where a.Age > 2
                     group a by a.Type1 into grp
                     where grp.Count() > 2
                     orderby grp.Count() descending
                     select grp;
    
                //返回自定义类
                var result5 =
                     from a in animals
                     where a.Age > 2
                     group a by a.Type1 into grp
                     where grp.Count() > 2
                     orderby grp.Count() descending
                     select new
                     {
                         Type = grp.Key
                     };
    
                //用方法名来调用分组
                var r1 = animals.GroupBy(a => a.Type1);
    
                //join语句
    
                var foods = new[] {
                    new {Name ="Dog",Food="Bone,Meat" },
                    new {Name ="Cat",Food="Fish" },
                    new {Name ="Wolf",Food="Meat" },
                    new {Name ="Monkey",Food="Banana,Apple" }
                };
    
                var animalFood =
                     from a in animals
                     join f in foods
                     on a.Name equals f.Name
                     select $"{a.Name} like {f.Food}";
    
                var animalFood0 =
                    from a in animals
                    join f in foods
                    on a.Name equals f.Name
                    orderby a.Name
                    select $"{a.Name} like {f.Food}";
    
                //三个表 Join 联查
                var sounds = new[] {
                    new { Name="Dog",Sound="汪汪"},
                    new { Name="Cat",Sound="喵喵"},
                    new { Name="Wolf",Sound="喔喔"},
                    new { Name="Monkey",Sound="hi hi"},
                };
    
                var animalFood1 =
                    from a in animals
                    join f in foods
                    on a.Name equals f.Name
                    join s in sounds
                    on a.Name equals s.Name
                    orderby a.Name
                    select $"{a.Name} like {f.Food} . {s.Sound}";
    
                /*
                 * 其他join 查询
                Expression<Func< T_Csr_UserAuthor, T_Sys_User, Csr_UserDTO>> select = (a, b) => new Csr_UserDTO
                {
                    SysUserId = b.Id
              RealName = b.RealName, }; select = select.BuildExtendSelectExpre(); var base_d = GetIQueryable(); var q = from a in base_d.AsExpandable() join b in Service.GetIQueryable<T_Sys_User>() on a.SysUserId equals b.Id into ab from b in ab.DefaultIfEmpty() select @select.Invoke(a, b); var where = LinqHelper.True<Csr_UserDTO>(); //if (!condition.IsNullOrEmpty() && !keyword.IsNullOrEmpty()) //{ // var newWhere = DynamicExpressionParser.ParseLambda<Csr_ProDTO, bool>( // ParsingConfig.Default, false, $@"{condition}.Contains(@0)", keyword); // where = where.And(newWhere); //} return await q.Where(where).GetPagination(pagination).ToListAsync();

    [MapFrom(typeof(T_Csr_UserAuthor))]
    [MapTo(typeof(T_Csr_UserAuthor))]
    public class Csr_UserDTO : T_Csr_UserAuthor
    {

    
    

    /// <summary>
    /// 用户名
    /// </summary>
    public String UserName { get; set; }
    /// <summary>
    /// 姓名
    /// </summary>
    public String RealName { get; set; }

    
    

    }

    */

    无分页 querysql(SQL语句).ToList<自定义实体>();
    有分页 querysql(SQL语句).ToList<自定义实体>().GetPagination(pagination);

                    var d = querysql(sql).ToList<T_Csr_Info_Extend>();
     or       List<Csr_UserDTO> d = querysql(sql).ToList<Csr_UserDTO>().GetPagination(pagination).ToList();
    
                    if (condition == "Name")
                    {
                        d = d.Where(x => x.Name != null && x.Name.Contains(keyword)).ToList();
                    }
    
    
                    if (!startTime.IsNullOrEmpty() && !endTime.IsNullOrEmpty())
                    {
                        d = d.Where(w => w.CreateTime >= startTime && w.CreateTime <= Convert.ToDateTime(endTime).AddDays(1).AddSeconds(-1)).ToList();
                    }
                    return d.GetPagination(pagination).ToList();
  • 相关阅读:
    算法竞赛入门经典训练指南
    git保护--git分支创建
    解决多个iframe嵌套而造成的多个滚动条问题
    css如何让div元素铺满整个屏幕
    第一个用python3写的爬虫小例子
    用JS获取当前页面的URL以及截取其中的字段
    css处理超出文本截断问题的两种情况(多行或者单行)
    约数的个数
    成绩排序
    八进制
  • 原文地址:https://www.cnblogs.com/enych/p/14527974.html
Copyright © 2011-2022 走看看