C# 强制FirstOrDefault返回null

C# 强制FirstOrDefault返回null,c#,entity,C#,Entity,如果在列表中找不到元素,但返回空guid,则需要返回null mappedTypes.Where(x => x.ReferenceId == new Guid("1a087b71-638c-4f3c-b1cf-3b0438c181c0")).Select(x=>x.MappingId).FirstOrDefault() 这个查询只返回“00000000-0000-0000-0000-000000000000”-我想返回null-或者一个guid值(如果存在) 您可以通过强制转换到G

如果在列表中找不到元素,但返回空guid,则需要返回null

mappedTypes.Where(x => x.ReferenceId == new Guid("1a087b71-638c-4f3c-b1cf-3b0438c181c0")).Select(x=>x.MappingId).FirstOrDefault()

这个查询只返回“00000000-0000-0000-0000-000000000000”-我想返回null-或者一个guid值(如果存在)

您可以通过强制转换到
Guid?
来选择它:

mappedTypes.Where(x => x.ReferenceId == new Guid("1a087b71-638c-4f3c-b1cf-3b0438c181c0"))
           .Select(x => (Guid?) x.MappingId)
           .FirstOrDefault();
另见:

您可以使用
?。
像这样检查空值:
mappedTypes.FirstOrDefault(a=>a.ReferenceId==new Guid(“1a087b71-638c-4f3c-b1cf-3b0438c181c0”)?.MappingIdFirstOrDefault()导致该错误。Guid的默认值为空Guid。您的查询要求至少返回一条记录,但它根本无法返回任何记录,因此它使用默认值。实际上,这是你让它做的。