Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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# 为什么petapoco中没有像FirstOrDefault那样的LastOrDefault方法?_C#_Sql Server_Asp.net Mvc_Database_Petapoco - Fatal编程技术网

C# 为什么petapoco中没有像FirstOrDefault那样的LastOrDefault方法?

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

假设这是SQL Server中的我的表
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_。无论如何,谢谢你的努力。非常感谢你的回答,我已经把它修好了,但是第一个功劳要归功于达米恩,一个不信的人。不管怎样,谢谢你的努力。谢谢你,但我在达米恩·不信的人评论道:“真的,我的心被绞死了,我甚至没有考虑订购,所以这是我的错误。”。。不管怎样,谢谢你,但我在达米安·不信者评论后立即修复了它,真的我的心被绞死了,我甚至没有考虑订购,所以这是我的错误。。无论如何,谢谢