gpt4 book ai didi

c# - LINQ 子查询

转载 作者:行者123 更新时间:2023-11-30 21:26:01 24 4
gpt4 key购买 nike

我需要对数据库表中的时间段 (Period) 和表中的发票列表 (Invoice) 在该时间段的开始日期和结束日期内执行 LINQ 查询。两张表之间没有键引用,如何进行Invoice子查询?

我正在尝试做类似以下的事情:

var query = (from p in db.DataContext.Periods
// Subquery i in db.DataContext.Invoices
let InvoiceAmount = i.Where(t => t.InvoiceDate >= p.StartDate && t.InvoiceDate <= p.EndDate)
select new PeriodView
(
p.Name,
p.StartDate,
p.EndDate,
InvoiceAmount.Count()
));

最佳答案

var periodViewList = 
(from p in db.DataContext.Periods
select new PeriodView(
p.Name,
p.StartDate,
p.EndDate,
db.DataContext.Invoices.Where(i => i.InvoiceDate >= p.StartDate && i.InvoiceDate <= p.EndDate).Count()
)).ToList();

我假设 PeriodView 构造函数看起来像这样

public PeriodView (string name, DateTime startDate, DateTime endDate, int invoiceCount) {
...
}

关于c# - LINQ 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/351707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com