我使用 LINQ FirstOrDefault 得到“序列不包含任何元素”。

int? locationId = _ctx.m_locations.FirstOrDefault(
                       l => l.name.ToLower() == countyOrTown.ToLower()
                  ).location_key;

我认为 FirstOrDefault 的全部意义在于,如果数据库中没有条目并且只返回 null,它不会引发异常?

最佳答案

由于正如您自己所说,.FirstOrDefault() 将返回一个 NULL 值,您需要首先 检查 是否为 NULL,并且仅当它是 NOT NULL 时才访问它的 .location_key 属性:

int? locationId = null;

var firstOrDefault = _ctx.m_locations.FirstOrDefault(l => l.name.ToLower() == countyOrTown.ToLower());

if(firstOrDefault != null)
    locationId = firstOrDefault.location_key;

关于c# - 序列不包含具有 LINQ FirstOrDefault 的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5018817/

10-11 16:20