zoukankan      html  css  js  c++  java
  • EF中左连接

    项目中遇到一个问题,就是两张表需要做链接,但关键字不是主键,另一个表的数据不是唯一的,所以需要按照时间排序取到最后时间的那一条数据。

    var InfoList = db.PrintInfo.OrderByDescending(c => c.Datetime).GroupBy(c => c.ph).Select(groups => new { FirstOrDefault = groups.FirstOrDefault()}).ToList();

    然后在进行左连接

     var user = (from u in ListA
                            join uw in InfoList on u.Number.Trim() + u.TicketNO.Trim() equals uw.FirstOrDefault.ph.Trim() into uwt                        
                            from uwti in uwt.DefaultIfEmpty() // 变成left join
                            select new{
                               ID=u.id,
                                Status = uwti != null ? (!string.IsNullOrEmpty(uwti.FirstOrDefault.Status) ? uwti.FirstOrDefault.Status : "") : "",
                            } .ToList();               

    这样选出来就是两张表的链接了。

    因为使用原来的ED方法,从另一个表里

     var List = PrintInfo.Where(n => n.ph.Trim() == reList[i].Number + reList[i].TicketNO).OrderByDescending(n => n.Datetime).Take(1).ToList();

    这样一个一个选择比较慢,所以进行了优化。特此记录

  • 相关阅读:
    华为设备SNMP配置
    Linux CP直接覆盖快速操作
    CentOS7快速安装PHP7.0指南
    Linux SSH免密码登录配置
    this的指向
    分页的模块layui
    multer中间件
    ajax实现图片上传
    MVC模式、加密、jsonwebtoken
    mongoose与express
  • 原文地址:https://www.cnblogs.com/Lvkang/p/11683707.html
Copyright © 2011-2022 走看看