作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据下面的 SQL 编写 Linq to Entities 查询
基本上我希望获得最近 5 个订单的列表,订单日期在 (TitleDetails) 的子详细信息表中
SELECT t.Name, t.LimpIsbn, t.CasedIsbn, max(td.OrderDate) LastOrder
FROM [inform].[dbo].[Titles] t
left join [inform].[dbo].[TitleDetails] td on t.id = td.TitleId
where td.OrderDate is not null
group by t.Name, t.LimpIsbn, t.CasedIsbn
order by max(td.OrderDate) desc
我的代码如下
var query = Context.Titles
.Include(x => x.MisAccount)
.Include(x => x.TitleDetails)
.Where(x => x.TitleDetails.Any());
if (!string.IsNullOrEmpty(model.MisCustomer))
{
query = query.Where(x => x.MisAccount.Code == model.MisCustomer);
}
if (!User.IsInRole(Permission.CanAccessAllCustomers.ToString()))
{
var predicate = PredicateBuilder.False<Title>();
foreach (var customer in validCustomers)
{
var cust = customer.Code;
predicate = predicate.Or(x => x.MisAccount.Code == cust);
}
query = query.AsExpandable().Where(predicate);
}
model.LatestOrders = query.Take(5)
LatestOrders 在 View 中是可枚举的。
我查看了有关 Linq Group by 的各种其他来源,这些来源与单表分组有关,我正在努力将其转化为多表。
最佳答案
您的 sql 查询可以转换为此 linq 查询:
var query =(from t in Context.Titles
join td in Context.TitleDetails on t.id equals td.TitleId into tds
from e in tds.DefaultIfEmpty()
where e.OrderDate!=null
group e.OrderDate by new {t.Name, t.LimpIsbn, t.CasedIsbn} into groups
from g in groups
select new { Name = m.Key.Name,
LimpIsbn = g.Key.LimpIsbn,
CasedIsbn = g.Key.CasedIsbm,
LastOrder = g.Max(x => x)})
.OrderBy(e=>e.LastOrder).Take(5);
关于c# - Linq To Entities Group By 最大日期加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37922515/
我是一名优秀的程序员,十分优秀!