简体   繁体   English

实体框架核心 map 相关实体仅当它不是 null

[英]Entity Framework Core map related entity only if it's not null

I have these 2 classes, Process and Task.我有这两个类,进程和任务。 Task is a related entity and is optional.任务是一个相关实体,是可选的。 I want to be able to map Task properties on select only if this is not null.我希望能够在 select 上的 map 任务属性,前提是这不是 null。 How do i handle it?我该如何处理?

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;}
}

on my razor page在我的 razor 页面上

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;}
}

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

TaskDescription = p.Task?.Description

The code above will set TaskDescription to null if Task is null.如果 Task 是 null,上面的代码会将 TaskDescription 设置为 null。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM