Я работаю над своим webapi в .net core 2.1
У меня есть две модели:
public class Project
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<Task> Tasks { get; set; } //list of tasks
}
public class Task
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
[ForeignKey("Project")]
public int ProjectId { get; set; } //project that task is included
public Project Project { get; set; }
}
И DbContext:
public class TaskManagerDbContext : DbContext
{
public TaskManagerDbContext(DbContextOptions<TaskManagerDbContext> options)
: base(options) { }
public DbSet<Project> Projects { get; set; }
public DbSet<Task> Tasks { get; set; }
}
Я сделал миграцию иupdate-database.
Следующим шагом было создание контроллеров WebAPI с действием чтения / записи на основе платформы Entity.
Мой вопрос: почему, когда я пытаюсь отладить мой код, список tasks
не создается в Project?
Я пробовал жестко заданные задачи и проекты.Все прекрасно работает, но когда я звоню простой api/Projects
в ответ я получаю "tasks": null
.Не могли бы вы помочь мне связать эту информацию в контроллере WebApi?
Контроллер выглядит следующим образом:
[Route("api/[controller]")]
[ApiController]
public class ProjectsController : ControllerBase
{
private readonly TaskManagerDbContext _context;
public ProjectsController(TaskManagerDbContext context)
{
_context = context; //tasks in projects here are null
}
// GET: api/Projects
[HttpGet]
public IEnumerable<Project> GetProjects()
{
return _context.Projects;
}
}
И его стандартный контроллер генерируется платформой.Таким образом, я могу довольно хорошо получать проекты и задачи (с помощью сгенерированного контроллера).Но проекты не имеют отношения tasks
.
Как включить tasks
в Project
?