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();
  • 相关阅读:
    遇到的函数知识
    网络编程
    python中的并发编程
    Django contenttypes组件
    同源策略定义及跨域解决方案
    Django Rest framework
    RESTful API
    python 给对象添加方法
    python 装饰器(复杂一点的)
    android动态替换Fragment向下传递数据
  • 原文地址:https://www.cnblogs.com/gossip/p/4832046.html
Copyright © 2011-2022 走看看