Я создаю простой список задач API, используя ASP. Net Core. Он имеет две основные две основные модели: модель списка и модель задачи. Каждый список имеет много задач. Я строю модели следующим образом:
Список моделей:
namespace ToDoList.Models
{
public class List
{
[Key]
public int ListId { get; set; }
[Required]
[StringLength(25)]
public string Title { get; set; }
public string Colour { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
public List()
{
Tasks = new List<Task>();
Colour = "secondary";
}
}
}
Модель задачи:
namespace ToDoList.Models
{
public class Task
{
[Key]
public int TaskId { get; set; }
[Required]
[StringLength(50)]
public string Title { get; set; }
public bool Done { get; set; }
public int ListId { get; set; }
public virtual List List { get; set; }
public Task()
{
Done = false;
}
}
}
Когда Я отправляю запрос на публикацию для создания новой задачи. Я пытаюсь добавить созданную задачу в часть Icollection модели List.
Мой контроллер выглядит следующим образом:
// POST: api/Tasks
[HttpPost]
public async Task<ActionResult<Models.Task>> PostTask(Models.Task task)
{
_context.Tasks.Add(task);
await _context.SaveChangesAsync();
return CreatedAtAction("GetTask", new { id = task.TaskId }, task);
}
Если я отправляю эти данные как JSON как POST-запрос:
{ title: "A New Task", listId: 11 }
, я создаю эту задачу:
{"taskId":16,"title":"A New Task","done":false,"listId":11,"list":null}
Как вы можете видеть, она имеет правильный listId, кроме списка вложенный имеет значение null.
Также задача не добавляется в список. Коллекция задач.
{"listId":11,"title":"Learn ASP.Net Core","colour":"secondary","tasks":[]}
Как видите, задачи все еще пусты.
Как сделать Я установил, что когда создается задача, она всегда добавляется в List.Tasks, а затем к Tasks.List добавляется правильный список, а не NULL.
Также в моей SQL Sever Database Я ожидал увидеть Задачи в таблице списков, но не вижу. Кто-нибудь может объяснить, почему? SQL Разрезать столбцы базы данных Рисунок