- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 Dapper.net 从表中返回最大 Id
var x = connection.Query<int>("SELECT max(val) FROM info").FirstOrDefault();
这行得通 - 除非不存在行,否则我会得到一个
Object reference not set to an instance of an object.
'OrDefault' 不应该意味着当没有记录存在时返回 0 吗?
如何返回 0 - 或一些非空值以防止崩溃。
谢谢
最佳答案
问题是您告诉 Dapper 期望一个 int
序列,但实际上您有可能是一个 null
值。所以你要么需要改变类型
var x = connection.Query<int?>("SELECT max(val) FROM info").Single() ?? 0;
或者您需要更改查询以处理 null
。
var x = connection.Query<int>("SELECT COALESCE(max(val), 0) FROM info").Single();
我在这里使用 Single
因为这个查询应该只返回一行。
当您期望一个序列并且只想要第一个项目时,或者如果没有项目您想要项目类型的默认值,您可以使用 FirstOrDefault
。
关于c# - Null Dapper.net 查询仍然使用 FirstOrDefault() 返回 Null Reference Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239217/
我遇到这样的问题:无论内部表达式如何计算,FirstOrDefault 始终返回它遇到的第一个项目。 假设我有一系列公司。 Companies = {Company1, Company2, Compa
我正在尝试在 IEnumerable 中搜索特定记录(使用谓词)。如果该记录不存在,我想返回第一条记录。如果那也不存在,我只想要 null。 我正在使用 var category = categori
有什么区别 FirstOrDefault(someField => someField.Name.Equals(settings.Text)) 和 Where(someField => someFie
使用 Linq to Entities 有以下区别吗? db.EntityName.Where(a => a.Id == id).FirstOrDefault(); db.EntityName.Fir
myCollection.Where(...).FirstOrDefault() 和 myCollection.FirstOrDefault(...) 之间是否存在性能差异 用您正在使用的谓词填充点。
我知道这个问题是asked a lot by people甚至有人说 So, first(FirstOrDefault(predicate)) one is better in terms of pe
有什么区别吗 DataFeedManager.LoadAllDataFeeds().FirstOrDefault(d => d.ItemID == itemId); 和 DataFeedManage
我一直在编写我的 LINQ 查询时使用 Where 子句中的谓词,后跟 FirstOrDefault 子句。我开始在 FirstOrDefault 子句中看到带有谓词的示例。 这个比那个好吗? EF
这两个 Linq 查询有什么区别: var result = ResultLists().Where( c=> c.code == "abc").FirstOrDefault(); // vs. va
我有点好奇,当谈到 FirstOrDefault 时,哪种被认为是“最佳实践”。 我已经看过这个问题,它与我的问题相似,但还不够接近,无法回答我的问题。 其中哪一个是“更好的代码”?为什么? var
FirstOrDefault() and FirstOrDefault() 有什么区别?在 LINQ 中? 有人能给我一些简单的解释吗? TypedDataSet ds= codeComponent.
我想声明如下: var block = blocksById.FirstOrDefault(X => X.Value == tracResult.ID).Key 我的问题是如果我有 FirstOrDe
我在 C# 项目中使用 EntityFramework 6.1.3 和 SQL Server。我有两个查询,基本上应该执行相同的操作。 1. Exams.GroupBy(x=>x.SubjectID)
这个问题在这里已经有了答案: EF Where(x => x.ColumnVal == 1) vs FirstOrDefault(x => x.Column == 1) (3 个答案) 关闭 9 年
我一直在清理一些旧代码,并遇到了以下结构的一些查询: var attribute = DbSet.Where().Select(a => a.Attribute).SingleOrDefault();
希望做一些重构......使用 NHibernate 我目前有这个查询 public Widget FindByCode(string code) { return
这里遇到了一种边缘情况问题。我的任务是将所有数据从一个数据库提取到另一个数据库,其中目标数据库具有不同的架构。 我选择编写一个 WinForms 实用程序来在必要时使用 Entity Framewor
下面是我编写的代码,由于 FirstOrDefault,它只返回第一条记录。获取存储在变量 EmailAddresses 中的所有电子邮件地址的语法应该是什么,其中 FlagActive 字段为 Tr
有两个主键a和b一键编译两把 key 怎么样 var product = db.TMP_HELLO.FirstOrDefault(instrmnt => (instrmnt.a == good.a;
当使用 Enumerable.FirstorDefault() 时,我是否需要始终捕获当操作的集合为 null 时可能抛出的 ArumentNullException? 过去我总是这样做: Workf
我是一名优秀的程序员,十分优秀!