Linq To SQL Выберите родительскую строку и верхнюю строку дочерней таблицы
Есть примеры для этого в SQL, и я их понимаю, но я не могу обойти это в Linq-SQL.
Существует две таблицы: "Счета" и "Учетные записи", связанные первичным ключом в "Счета", который, как ни удивительно, AccountID.
Мне нужно выбрать каждую строку "Учетная запись" и 1 дочернюю учетную запись AccountTransaction "Самые последние (первые 1 в порядке убывания").
Я пытался взломать некоторые примеры, которые я нашел, но не повезло (просто не понимаю, я думаю)...
Любая помощь приветствуется...
2 ответа
Это одно из возможных решений; это не красиво, но это должно работать:
from account in Accounts
select new
{account.Name, account.Whatever,
LastTransaction =
account.AccountTransactions.OrderByDescending(t => t.Date).First()};
При этом будут выбраны все учетные записи, и, если таблица AccountTransactions имеет AccountID в качестве внешнего ключа, соединение будет выполнено автоматически. Все, что вам нужно сделать, это получить необходимые данные для учетной записи и получить последнюю транзакцию, упорядоченную по дате.
- tblLink link = (из c в context.tblRegionLinks, где c.LinkId == 3 && c.RegionId == 5 select c.tblLink).FirstOrDefault();
Работает нормально в моем случае.....
Надеюсь, это поможет кому-то еще.