Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Linq从有序结果中选择对象_C#_Linq_Entity Framework 4 - Fatal编程技术网

C# 使用Linq从有序结果中选择对象

C# 使用Linq从有序结果中选择对象,c#,linq,entity-framework-4,C#,Linq,Entity Framework 4,这个问题很简单,但我今天早上似乎很不舒服 到目前为止,我已经构建了以下查询,我希望选择返回结果中的第一个对象,但不是ID本身,而是具有该ID的底层用户 这有意义吗 //Edited the code for clarity! After this OrderBy is run,

这个问题很简单,但我今天早上似乎很不舒服

到目前为止,我已经构建了以下查询,我希望选择返回结果中的第一个对象,但不是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上出价的用户

也许这让问题更清楚了。我需要返回一个用户对象

谢谢您的时间。

您可能想试试

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

很难说,因为我几乎不知道您的数据结构是什么样子。

我相信您想要:

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();
我相信你想要:

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();
这将对匹配项进行排序,然后返回匹配的第一个项,如果未找到,则返回null(如果是引用类型类)



这将对匹配项进行排序,然后返回匹配的第一个项,如果未找到则返回null(如果它是引用类型类)。

您是否尝试了FirstOrDefault?@Nivid:FirstOrDefault在这种情况下将返回UserAuctionLance对象,而不是我想要的链接用户对象。谢谢你的努力您的模型是如何定义的?你能做一个.FirstOrDefaultu=>u.User吗,即UserActionLance是否也定义了用户对象……你需要告诉我们如何从UserActionLances实体导航到用户实体。@Major Byte:FirstOrDefault采用可选谓词,而不是投影。您可以将a=>a.AuctionId==id放在其中,但不能将a=>a.userYou尝试了FirstOrDefault吗?@Nivid:FirstOrDefault在这种情况下将返回一个UserAuctionLance对象,而不是我想要的链接用户对象。谢谢你的努力您的模型是如何定义的?你能做一个.FirstOrDefaultu=>u.User吗,即UserActionLance是否也定义了用户对象……你需要告诉我们如何从UserActionLances实体导航到用户实体。@Major Byte:FirstOrDefault采用可选谓词,而不是投影。您可以将a=>a.AuctionId==id放在其中,但不能将a=>a.UserBut放在其中,因为它返回的是UserAuctionLance对象,而不是我想要的底层用户对象。用户对象是UserAuctionLance对象的一部分吗?然后将上面的语句修改为:source.Where….OrderBy….Selecta=>a.UserObject.FirstOrDefault;现在你明白我的问题了好了,编辑你的答案,我会接受。选择a=>a有什么意义。如果您只是返回相同的内容,则可以删除此内容。@Kevek:天哪,对不起,我编辑了您的问题,而不是我的问题!我的糟糕透顶!取消我的编辑。再次表示歉意。但这返回了一个UserAuctionLance对象,而不是我想要的底层用户对象。用户对象是UserAuctionLance对象的一部分吗?然后将上面的语句修改为:source.Where….OrderBy….Selecta=>a.UserObject.FirstOrDefault;现在你明白我的问题了好了,编辑你的答案,我会接受。选择a=>a有什么意义。如果您只是返回相同的内容,则可以删除此内容。@Kevek:天哪,对不起,我编辑了您的问题,而不是我的问题!我的糟糕透顶!取消我的编辑。再次表示歉意。@scartag这是因为UserAuctionLances和用户表之间的关系是什么。但这返回了一个UserAuctionLances对象,而不是我想要的底层用户对象。如果您使用的是EF4,并且用户表通过关系链接到UserAuctionLance表,用户实体应该是导航属性。。。很难说。@Sergio Tapia。。我想您应该试试。@scartag:如果FirstOrDefault返回null,则调用它的.User将导致NullReferenceException崩溃。应该在调用First/Last之前选择。@scartag这是因为UserAuctionLances和用户表之间的关系是什么。但这返回了一个UserAuctionLance对象,而不是我想要的底层用户对象。如果您使用的是EF4,并且用户表通过关系链接到UserAuctionLance表,用户实体应该是导航属性。。。很难说。@Sergio Tapia。。我想您应该试试。@scartag:如果FirstOrDefault返回null,则调用它的.User将导致NullReferenceException崩溃。应在调用第一个/最后一个之前选择。