Я новичок в LINQ и пытаюсь разобраться с этим.Я пытаюсь получить записи для нескольких учетных записей (несколько идентификаторов учетных записей) и отсортировать результаты по дате.
В настоящее время я располагаю результаты в виде списка, в котором в каждом элементе списка содержится несколько строк / учетная запись.
Это близко, но не совсем то, что я хочу.Как вернуть результаты так, чтобы все результаты (то есть все записи, связанные с каждой учетной записью) были отсортированы по дате и возвращены как таковые.
Я предполагаю, что это какое-то соединение LINQ, но я не уверен, какой будет синтаксис.
public List<StatusUpdate> GetFriendStatusUpdatesByAccountId(Int32 accountId)
{
List<StatusUpdate> result;
List<Friend> friends =
_friendRepository.GetFriendsByAccountId(accountId);
using (WorkbookDataContext dc = _conn.GetContext())
{
IEnumerable<StatusUpdate> statusUpdates = null;
foreach (Friend friend in friends)
{
Friend friend1 = friend;
statusUpdates = from su in dc.StatusUpdates
where su.AccountId == friend1.MyFriendsAccountId
orderby su.CreateDate descending
select su;
}
if (statusUpdates != null) result = statusUpdates.ToList();
}
return result;
}
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Спасибо за ваше предложение.Я немного переработал его, чтобы получить доступ к OrderByDescending, но, похоже, не могу понять проблему «не удается разрешить символ» для друга и су (показано ниже в CAPS).Мне интересно, если вы предполагаете, что «друг в друзьях» обращался к Другу как к таблице LINQ (которая дала бы нам доступ к MyFriendsAccountId), а не к списку (который не дает нам прямой доступ к MyFriendsAccountId? В любом случае, я новичок LINQ).так что, возможно, я лаю не на том дереве. В любом случае, FRIEND в друзьях и SU выдают «не удается устранить ошибку символа», и я буду благодарен за предложения. Огромное спасибо за ваш отзыв ...
public List<StatusUpdate> GetFriendStatusUpdatesByAccountId(Int32 accountId)
{
List<StatusUpdate> result;
using (WorkbookDataContext dc = _conn.GetContext())
{
List<Friend> friends =
_friendRepository.GetFriendsByAccountId(accountId);
IEnumerable<StatusUpdate> statusUpdates =
from su in dc.StatusUpdates
join friend in friends
on FRIEND.MyFriendsAccountId
equals SU.AccountId
select su;
result =
statusUpdates.OrderByDescending
(su => su.CreateDate).ToList();
}
return result;
}