LINQ 子查询

2024-01-05

我需要对数据库表 (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(使用前将#替换为@)

LINQ 子查询 的相关文章

随机推荐