gpt4 book ai didi

c# - 使用带有 lambda 表达式的 db 获取数据并合并

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:47 24 4
gpt4 key购买 nike

我有一个关于合并和 lambda 表达式的问题。我正在从 SQLite 数据库中读取一些记录,但并不总是有一些记录。例如

return db.GetItems<Appointment>().Where(l => l.AppointmentId == appointmentId).First();

如果没有约会我会收到错误

Sequence contains no elements

我同意。然后我尝试改变表达方式

return db.GetItems<Appointment>()?.Where(l => l.AppointmentId == appointmentId)?.First();

我首先考虑 ? 如果没有约会,函数返回 null。如果 where 没有约会,我插入第二个 ? 也是同样的原因。

那么我的问题是:我做错了什么?有可能这样做吗?提前谢谢你

最佳答案

问题是当您调用First 时序列是空的,而不是它是null。您想要的是 FirstOrDefault,当调用它的序列为空时,它将产生默认值(在本例中为 null)。

return db.GetItems<Appointment>()
.Where(l => l.AppointmentId == appointmentId)
.FirstOrDefault();

您也不需要 GetItems 之后的 null 条件运算符,因为它不应返回 null,可能是一个空序列,但不是 null.

关于c# - 使用带有 lambda 表达式的 db 获取数据并合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40042820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com