带有空引用的 EF Core Select 查询

EF Core Select query with null references

我有一个 Select 查询,它对子导航 属性 执行检查,然后检查另一个引用的 属性。第一个子导航 属性 可以为空,但第二个 属性 isRequired() 并且如果第一个子导航在数据库中不为空,则查询 运行 可以,但是如果一个或存在更多没有该 属性 引用值的行,然后我得到 -

An exception occurred while iterating over the results of a query for...

如何使用可选 属性 运行 和 return null 查询没有引用的记录。

await _dbContext.NewsBoard
    .AsNoTracking()
    .Select(item => new NewsResponse
    {
        Id = item.BoardId,
        MediaType = new MediaTypeResponse 
        { 
             Id = item.Media.MediaTypeId, 
             Name = item.Media.MediaType.Name 
        },

以上是我正在尝试 运行 的查询,item.Media 不存在其外键值(其为空),因此预期结果将是一个列表NewsResponse MediaType 为 null,其中引用了 null item.Media

使用 null 检查您的查询,例如 -

await _dbContext.NewsBoard
        .AsNoTracking()
        .Select(item => new NewsResponse
        {
            Id = item.BoardId,
            MediaType = item.Media == null ? null : new MediaTypeResponse  // null check
            {
                Id = item.Media.MediaTypeId,
                Name = item.Media.MediaType.Name
            }
        })
        .ToList();