zoukankan      html  css  js  c++  java
  • linq 之左连接

    List<ArticleModel> articleList = articleRepository.GetAllArticle();
    List<UsersModel> userList = usersRepository.GetAllUsers();

    //用户表左连接文章表
    var usersLeftJoin = (from u in userList
    join a in articleList
    on u.Id equals a.Author into users
    from us in users.DefaultIfEmpty()
    select new
    {
    author = us == null ? "" : us.Author.ToString(),
    name = u.Name.Trim()
    }).ToList();

    //要避免这种写法,这种写法查出来的数据实际上相当于连接
    var usersLeftJoin1 = (from u in userList
    join a in articleList
    on u.Id equals a.Author into users
    from us in users
    select new
    {
    author = us.Author,
    name = u.Name.Trim()
    }).ToList();


    //文章表左连接用户表
    var articleLeftJoin = (from a in articleList
    join u in userList
    on a.Author equals u.Id into users
    from us in users.DefaultIfEmpty()
    select new
    {
    title = a.Title.Trim(),
    name = us == null ? "" : us.Name.Trim(),
    author = a.Author
    }).ToList();

    //要避免这种写法,这种写法查出来的数据实际上相当于连接
    var articleLeftJoin1 = (from a in articleList
    join u in userList
    on a.Author equals u.Id into users
    from us in users
    select new
    {
    name = us.Name.Trim(),
    author = a.Author
    }).ToList();

    //用户表连接文章表
    var result = (from a in articleList
    from u in userList
    where a.Author == u.Id
    select new
    {
    name = u.Name,
    author = a.Author
    }).ToList();

  • 相关阅读:
    spring前两天
    代理模式
    学习spring第三天
    Spring集成MyBatis配置文件
    学习spring第二天
    学习spring第一天
    Bind关闭递归查询
    织梦DedeCMS v5.7 实现导航条下拉菜单
    Debian下修改系统时间的方式
    js禁止页面复制功能禁用页面右键菜单示例代码
  • 原文地址:https://www.cnblogs.com/ushou/p/3408014.html
Copyright © 2011-2022 走看看