我需要对数据库表 (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) {
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)