Выбор объекта с помощью Linq из упорядоченного результата - PullRequest
1 голос
/ 31 августа 2011

Довольно простой вопрос, но у меня, кажется, тяжелое утро.

У меня уже сформирован следующий запрос, и я хотел бы выбрать первый объект в возвращаемом результате, но не сам идентификатор, а пользователя, у которого есть этот идентификатор.

Имеет ли это смысл?

//Edited the code for clarity!
                                                            After this OrderBy is run,
                                                            I have collection I want,
                                                        but I need to select the USER 
                                                             no the UserAuctionLance.
var user = db.UserAuctionLances.Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).Select??

"Закажите все пользовательские ставки по убыванию и дайте мне последнего пользователя, который сделал ставку на аукционе с номером Foo."

Может быть, это проясняет вопрос. Мне нужно вернуть объект User.

Спасибо, что уделили время.

Ответы [ 3 ]

2 голосов
/ 31 августа 2011

Я верю, что вы хотите:

var user = db.UserAuctionLances.Select(a=>a).Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).FirstOrDefault();

Это должно вернуть первый результат, или ноль, если его не существует.

И, как вы объяснили ниже, вы хотите, чтобы пользовательский объект внутри userAuctionLances имел что-то вроде:

var user = db.UserAuctionLances.Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).Select(a=>a.UserObject).FirstOrDefault();
1 голос
/ 31 августа 2011
var user = db.UserAuctionLances.Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).Select(a => a.User).FirstOrDefault();

Это позволит отсортировать совпадения и затем вернуть первый соответствующий элемент или null, если это ссылочный тип (класс), если он не найден.

1 голос
/ 31 августа 2011

Вы можете попробовать ..

var user = db.UserAuctionLances.Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).Select(s => s.User).FirstOrDefault();

или

var user = db.UserAuctionLances.Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).Select(s => s.User).LastOrDefault();

Трудно сказать, потому что я почти не знаю, на что похожа ваша структура данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...