LINQ Subquery - PullRequest
       14

LINQ Subquery

2 голосов
/ 09 декабря 2008

Мне нужно выполнить запрос LINQ для периода времени из таблицы базы данных (период) и списка счетов из таблицы (счет-фактура), которые попадают в даты начала и окончания периода. Между двумя таблицами нет ключевой ссылки. Как мне выполнить подзапрос «Счет-фактура»?

Я пытаюсь сделать что-то похожее на следующее:

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()
              ));

1 Ответ

4 голосов
/ 09 декабря 2008
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) {
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...