一、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();

Linq To Sql的各种查询的更多相关文章

  1. Linq To Sql 语法 子查询 & In & Join

    子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 =from cin ctx.Customers                    where                  ...

  2. wcf+linq to sql中关联查询返回数据问题

    前段时间准备采用wcf+nh框架开发sl程序,发现采用nh开发不适合我的中型.并且快速开发项目,所以综合考量了下,决定采用wcf+linq to sql . 但是此模式也有缺点,也是linq to s ...

  3. EFCore扩展:IQueryable(linq)或sql执行的查询缓存与清理

    前言 上一篇讲述了执行sql和配置的一些功能,这篇说明IQueryable(linq)或执行sql的查询缓存与清理,包括扩展到将缓存存储到Redis中. 扩展类库源码: github:https:// ...

  4. Webform中linq to sql多条件查询(小练习)

    多条件查询:逐条判断,从第一个条件开始判断,如果满足,取出放入集合,再从集合中查询第二个条件... aspx代码: <body> <form id="form1" ...

  5. LinQ to sql 各种数据库查询方法

    1.多条件查询: 并且 && 或者 || var list = con.car.Where(r => r.code == "c014" || r.oil == ...

  6. Linq to Sql 左连接查询

    var query = from t0 in context.ExpressSendMaster join t1 in context.Supplier on t0.SupplierCode equa ...

  7. linq to sql 动态构建查询表达式树

    通过Expression类进行动态构造lamda表达式. 实现了以下几种类型,好了代码说话: public Expression<Func<T, bool>> GetAndLa ...

  8. LINQ to Sql系列二 简单查询和联接查询

    这一篇文章主要总结LINQ to sql的简单查询(单表查询)和联接查询(多表查询) 单表查询 需求是我们要输出TClass表中的结果.使用了from-in-select语句,代码如下: public ...

  9. .NET面试题系列[14] - LINQ to SQL与IQueryable

    .NET面试题系列目录 名言警句 "理解IQueryable的最简单方式就是,把它看作一个查询,在执行的时候,将会生成结果序列." - Jon Skeet LINQ to Obje ...

随机推荐

  1. MAC电脑密码破解

    [第一个方法] 开机,启动时按cmd+S,进入Single User Mode,出现像DOS一样的提示符#root> 在#root>下输入(注意空格,大小写)   fsck -y moun ...

  2. 【BZOJ】1725: [Usaco2006 Nov]Corn Fields牧场的安排

    [算法]状压DP [题解]对于上一行的每个状态,每行进行DFS. #include<cstdio> #include<algorithm> #include<cstrin ...

  3. 也说JS脚本加载控制

    问题背景 前端采用的 iframe + html 做后台管理系统.现在js.jquery插件非常多,每次页面都是引用就类似这样: <script src="../Scripts/jqu ...

  4. [Leetcode Week4]Merge Two Sorted Lists

    Merge Two Sorted Lists题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/merge-two-sorted-lists/descrip ...

  5. 一步步打造自己的linux命令行计算器

    相信很多人,在工作中会需要使用到计算器.一般的做法是,打开并使用系统自带的计算器. 这种做法可能对我来说,有如下几个问题. 太慢.每次需要打开计算器,然后改成编程模式,手工选择进制,再使用输入表达式进 ...

  6. Linux中实现一个简单的进度条【转】

    转自:http://blog.csdn.net/yuehailin/article/details/53999288 说起进度条,其实大家常常见到,比如说你在下载视频或文件的时候,提示你当前下载进度的 ...

  7. python学习笔记 可变参数关键字参数**kw相关学习

    在Python中可以定义可变参数,顾名思义,可变参数就是传入参数是可变的.可以是任意个,以一个简单的数学编程为例,计算 sum = a * a + b * b + .....z * z 函数定义可以如 ...

  8. jquery 操作dom效率测试------html和append插入文档

    $(function () { var htmlResult = createHtmlContent(100); console.log(htmlResult) insertHtml.call($(& ...

  9. linux常用命令 ps

    linux常用命令 ps Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些线程的快照,就是执行ps命令的那个时刻的那些进程 ...

  10. js一段小代码(浏览器用alert,否则用console)

    (function(){ var root=this, isBrowserSide=false; if(typeof window !=="undefined" && ...