我想使用Dapper.net从表中返回最大ID
var x = connection.Query<int>("SELECT max(val) FROM info").FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
这是有效的 - 除非没有行然后我得到一个
你调用的对象是空的.
不应该'OrDefault'意味着当没有记录时它会返回0吗?
如何返回0 - 或一些非空值以防止崩溃.
谢谢
juh*_*arr 10
问题是你告诉Dapper期望一系列的int,但你实际上有可能的null价值.所以你要么改变类型
var x = connection.Query<int?>("SELECT max(val) FROM info").Single() ?? 0;
Run Code Online (Sandbox Code Playgroud)
或者您需要更改查询以处理null.
var x = connection.Query<int>("SELECT COALESCE(max(val), 0) FROM info").Single();
Run Code Online (Sandbox Code Playgroud)
我在Single这里使用,因为这个查询应该只返回一行.
您可以FirstOrDefault在期望序列时使用,只需要第一个项目,或者如果没有项目,则需要项目类型的默认值.
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |