EF 里的 join and Group Join

join

var skip = pageSize * (pageIndx - 1);
pageCount = _db.Orders.Count();
return _db.Orders.OrderByDescending(c=>c.ID).Skip(skip).Take(pageSize)
 .Join(_db.Income, a => a.ID, b => b.OrderId, (a, b) => new OrdersInComeModel { 
 ID=a.ID,
 incometype=b.incometype,
 Amount=a.Amount,
 BuyDate=a.BuyDate,
 CancelDate=a.CancelDate,
 IncomeAmount=b.IncomeAmount,
 IncomeDate=b.IncomeDate,
 State=a.State
 }).ToList();

 

left join

var skip = pageSize * (pageIndx - 1);
pageCount = _db.Orders.Count();
var lsw= _db.Orders.OrderByDescending(a => a.ID).Skip(skip).Take(pageSize);
var rt=(from l in lsw join i in _db.Income on l.ID equals i.OrderId into os
from f in os.DefaultIfEmpty()
select new OrdersInComeModel
{
ID = l.ID,
incometype = f.incometype,
Amount = l.Amount,
BuyDate = l.BuyDate,
CancelDate = l.CancelDate,
IncomeAmount = f.IncomeAmount,
IncomeDate = f.IncomeDate,
State = l.State
}).ToList();

 

Group Join

一个KEY对象对应一个集合(返回子表对应集合)

var data = dbContext.Categories.GroupJoin(dbContext.Products, c => c.CategoryID, p => p.CategoryID, (c, p) => new { CategoryID = c.CategoryID, ProductList = p });

 

转载于:https://www.cnblogs.com/asd14828/p/6518964.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值