C# 为什么petapoco中没有像FirstOrDefault那样的LastOrDefault方法?
假设这是SQL Server中的我的表C# 为什么petapoco中没有像FirstOrDefault那样的LastOrDefault方法?,c#,sql-server,asp.net-mvc,database,petapoco,C#,Sql Server,Asp.net Mvc,Database,Petapoco,假设这是SQL Server中的我的表TicketUpdate,其中包含一些数据: _______________________________ | Id | TicketId | Description | ------------------------------- | 1 | 5 | desc1 | | 2 | 6 | desc2 | | 3 | 5 | desc3 | | 4 | 5
TicketUpdate
,其中包含一些数据:
_______________________________
| Id | TicketId | Description |
-------------------------------
| 1 | 5 | desc1 |
| 2 | 6 | desc2 |
| 3 | 5 | desc3 |
| 4 | 5 | desc4 |
| 5 | 6 | desc5 |
我想用Petapoco
检索最后一行的TicketId=5
有几种检索单行的方法,如FirstOrDefault
,如下所示:
db.FirstOrDefault<TicketUpdate>("select * from TicketUpdate where TicketId = 5");
但是,有没有什么方法或更好的方法可以像我们使用
FirstOrDefault
方法检索第一行一样,在不嵌套查询的情况下查找最后一行?如注释中所述,您应该能够首先对数据进行排序。
试着这样做:
db.FirstOrDefault<TicketUpdate>("select TOP 1 * from TicketUpdate where TicketId = 5 orderby [Id] desc");
db.FirstOrDefault(“从TicketUpdate中选择前1个*,其中TicketId=5 orderby[Id]desc”);
只要
Id
增加,它就应该返回注释中提到的为TicketId==5
添加的最后一项,您应该能够首先对数据进行排序。
试着这样做:
db.FirstOrDefault<TicketUpdate>("select TOP 1 * from TicketUpdate where TicketId = 5 orderby [Id] desc");
db.FirstOrDefault(“从TicketUpdate中选择前1个*,其中TicketId=5 orderby[Id]desc”);
只要
Id
增加,它就应该返回为TicketId==5添加的最后一项更改查询以获取Id为max
的最后一条记录。您还需要使用Top 1
仅获取一条记录
select Top 1 * from TicketUpdate where TicketId = 5 order by ID desc
更改查询以获取ID为max
的最后一条记录。您还需要使用Top 1
仅获取一条记录
select Top 1 * from TicketUpdate where TicketId = 5 order by ID desc
当您没有指定订单时,要求“第一”或“最后”实际上是“给我一个随机行”。如果确实指定了订单,则不需要LastOrDefault
——或者实际上,您已经有了LastOrDefault
。它的拼写是FirstOrDefault
,但您使用的顺序与以前相反。我必须同意@Damien\u这个不信者的说法。除非手动指定顺序,否则表本身不会排序。因此LastOrDefault()没有意义。相反,您可以使用OrderByDesc(…).FirstOrDefault()。从TicketUpdate中选择*,其中TicketId=5 order by ID desc
在未指定订单时询问“first”或“last”实际上是“给我一个随机行”。如果确实指定了订单,则不需要LastOrDefault
——或者实际上,您已经有了LastOrDefault
。它的拼写是FirstOrDefault
,但您使用的顺序与以前相反。我必须同意@Damien\u这个不信者的说法。除非手动指定顺序,否则表本身不会排序。因此LastOrDefault()没有意义。相反,您可以使用OrderByDesc(…).FirstOrDefault()。select*from TicketUpdate,其中TicketId=5 order by ID desc
非常感谢您的回答,我已经解决了这个问题,但第一个功劳是不信者Damien_。无论如何,谢谢你的努力。非常感谢你的回答,我已经把它修好了,但是第一个功劳要归功于达米恩,一个不信的人。不管怎样,谢谢你的努力。谢谢你,但我在达米恩·不信的人评论道:“真的,我的心被绞死了,我甚至没有考虑订购,所以这是我的错误。”。。不管怎样,谢谢你,但我在达米安·不信者评论后立即修复了它,真的我的心被绞死了,我甚至没有考虑订购,所以这是我的错误。。无论如何,谢谢