我有这两个类,进程和任务。任务是一个相关的实体,是可选的。我希望仅当这不为 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;}
}
在我的 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
关于c# - Entity Framework Core 映射相关实体,仅当它不为空时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726561/