仅与实体框架核心图相关的实体不为null

我有流程和任务这两个类。任务是一个相关实体,是可选的。我希望仅当此属性不为null时,才能在select上映射Task属性。我该如何处理?

public class Process
{
    public int Id {get;set;}
    public string Description {get;set;}
    public int? TaskId {get;set;}
    public Task Task {get;set;}
}

public class Task
{
    public int Id {get;set;}
    public string Description {get;set;}
}

在我的剃须刀页面上

public PageViewModel Process {get;set;}
[BindProperty(SupportsGet = true)]
public int Id { get; set;}
public void OnGet()
{
    Process = _context.Processes
                  .Select(p => new PageViewModel
                  {
                      Id = p.Id,Description = p.Description,HasTask = p.TaskId.HasValue,TaskDescription = p.Task.Description // How to handle if task is null here?
                  })
                  .FirstOrDefault(p => p.Id == Id)

}

public class PageViewModel
{
    public int Id{get;set;}
    public string Description {get;set;}
    public bool HasTask {get;set;}
    public string TaskDescription {get;set;}
}
zydx123 回答:仅与实体框架核心图相关的实体不为null

p.Task == null ? "" : p.Task.Description

,
TaskDescription = p.Task?.Description

如果Task为null,则上面的代码会将TaskDescription设置为null。

本文链接:https://www.f2er.com/3153683.html

大家都在问