zoukankan      html  css  js  c++  java
  • Linq To Sql的各种查询

    一、Inner Join

      //request为查询条件
      var result = from a in db.TableA
     join b in db.TableB
     on a.ID equals b.ID
     where a.UserName == request.UserName || a.Mobile == request.Mobile
     select new ResponseInfo
     {
         UserName = ui.UserName,
         UserID = ui.ID,
         Mobile = ui.Mobile,
         Value = ue.Value
     };
     
    二、Left  Join
    //request为查询条件
    var result = from si in db.TableA
         join ai in db.TableB on si.UserID equals ai.ID into ljTableB
         from ai in ljTableB.DefaultIfEmpty()
         join pi in db.TableC on si.ProductID equals pi.ID into ljTableC
         from pi in ljTableC.DefaultIfEmpty()
         join ps in db.TableD on si.SpecID equals ps.ID into ljTableD
         from ps in ljTableD.DefaultIfEmpty()
         select new InfoResposne
         {
             ID = si.ID,
             DisplayID = pi.DisplayID,
             ProductID = si.ProductID,
             ProductName = pi.ProductName,
             BarCode = pi.BarCode,
             SpecID = si.SpecID,
             Created = si.Created
         };
     
    二、动态添加查询条件及翻页
    //字符串
    if (!string.IsNullOrWhiteSpace(request.DisplayID))
    {
        result = result.Where(p => p.DisplayID == request.DisplayID);
    }
    //字符串包含
    if (!string.IsNullOrWhiteSpace(request.UserName))
    {
        userInfo = userInfo.Where(p => p.UserName.Contains(request.UserName));
    }
    //数字、状态类型
    if (request.Amount!=null)
    {
        result = result.Where(p => p.Amount == request.Amount);
    }
    //时间范围
      if (request.StockInStart != null)
    {
        result = result.Where(p => p.Created >= request.StockInStart);
    }
    //时间范围
    if (request.StockInEnd != null)
    {
        result = result.Where(p => p.Created <= request.StockInEnd);
    }
     
    var response = new LogResponse();
    response.TotalCount = result.Count();
    response.DataList = result
                .OrderByDescending(p => p.Created)
                .Skip((request.PageIndex - 1) * request.PageSize)
                .Take(request.PageSize)
                .ToList();
  • 相关阅读:
    itk_interior
    itk_option define
    scrolled canvas tcl tk
    init.rc的disabled含义
    WIFI分析与移植
    ubuntu10.04命令挂载windows硬盘与U盘
    Android WIFI 分析
    Android WIFI 分析
    Android平台开发WIFI function portingWIFI功能移植
    Android平台开发WIFI function portingWIFI功能移植
  • 原文地址:https://www.cnblogs.com/gossip/p/4832046.html
Copyright © 2011-2022 走看看