非常简单的问题,但我似乎有一个艰难的早晨。
到目前为止,我已经构建了以下查询,并且我想在返回的结果中选择第一个对象,但不是ID本身,而是具有该ID的基础用户。
这有意义吗?
//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对象。
感谢您的时间。
答案 0 :(得分:2)
我相信你想要:
var user = db.UserAuctionLances.Select(a=>a).Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).FirstOrDefault();
那应该返回第一个结果,如果不存在则返回null。
正如您在下面解释的那样,您希望userAuctionLances中的用户对象更像是:
var user = db.UserAuctionLances.Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).Select(a=>a.UserObject).FirstOrDefault();
答案 1 :(得分:1)
你可能想尝试..
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();
很难说,因为我几乎不知道你的数据结构是什么样的。
答案 2 :(得分:1)
var user = db.UserAuctionLances.Where(a => a.AuctionId == id).OrderByDescending(s => s.DateTimeOfLance).Select(a => a.User).FirstOrDefault();
这将对匹配进行排序,然后返回匹配的第一个项目,如果找不到,则返回null
如果它是引用类型(类)。