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();
  • 相关阅读:
    MapReduce 运行流程概要
    HDFS 读写流程概要
    Hadoop源码分析22:dfsclient概要
    Hadoop源码分析22:dfsclient概要
    Matlab安装SVM/RF工具箱的办法
    最大似然估计、最大后验概率估计、贝叶斯公式的理解
    车牌识别
    BP神经网络
    SVM中核函数的理解
    数据库面试
  • 原文地址:https://www.cnblogs.com/gossip/p/4832046.html
Copyright © 2011-2022 走看看