C# 类型的默认值 - C# 参考 - C# | Microsoft Learn
EntityFrameworkQueryableExtensions.FirstOrDefaultAsync 方法 (Microsoft.EntityFrameworkCore) | Microsoft Learn
当使用EFCore的FirstOrDefaultAsync方法时,需清楚当查询不到数据返回null还是什么?比如:
//引用类型的默认值是null,所以查不到数据返回null
await _repository.GetSet<TestEntity>(i => i.Id == model.Request.BusinessId.Value).Select(s => new TestEntity { Property = s.Property, CourseId = s.CourseId }).FirstOrDefaultAsync(); //同样的匿名类,引用类型,默认值是null,查不到数据返回null
await _repository.GetSet<TestEntity>(i => i.Id == model.Request.BusinessId.Value).Select(s => new { s.Property, s.CourseId }).FirstOrDefaultAsync(); //Id是GUID类型值类型,返回GUID.Empty 既'00000000-0000-0000-0000-000000000000'
await _repository.GetSet<TestEntity>(i => i.Id == model.Request.BusinessId.Value).Select(s => s.Id).FirstOrDefaultAsync();
仅供学习参考,如有侵权联系我删除。