首页 > 数据库技术 > 详细

Linq To Sql的各种查询

时间:2015-09-23 14:45:39      阅读:333      评论:0      收藏:0      [点我收藏+]

一、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的各种查询

原文:http://www.cnblogs.com/gossip/p/4832046.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!