我找不到比這個教程從窗戶就如何創建一個模型以外的任何文件:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-apiASP.NET酷睿2的Web API模型
到目前爲止,一切都很好的ASP.NET核心基礎知識,但我的模型比教程中的要複雜一些,我似乎無法在網上找到任何有關我的問題的文檔。
我的模式是這樣的:
public class Set
{
public int Id { get; set; }
public byte Rep { get; set; }
public int Weight { get; set; }
public int NumberOfDS { get; set; }
public double PercentDrop { get; set; }
public virtual Exercise Exercise { get; set; }
public int ExerciseId { get; set; }
}
public class Exercise
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<Set> SetList { get; set; }
public byte RestTime { get; set; }
public virtual Workout Workout { get; set; }
public int WorkoutId { get; set; }
}
public class Workout
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<Exercise> ExerciseList { get; set; }
public bool Archived { get; set; }
}
然後我的控制器看起來是這樣的:
namespace WorkoutKeeper.Core.Controllers
{
[Route("api/[controller]")]
public class WorkoutController : Controller
{
public readonly ApiContext _context;
public WorkoutController(ApiContext context)
{
_context = context;
if (_context.WorkoutItems.Count()==0)
{
Workout wo1 = new Workout() { Name = "WO1" };
_context.WorkoutItems.Add(wo1);
_context.SaveChanges();
Exercise e1 = new Exercise() { Name = "E1", WorkoutId = wo1.Id };
_context.ExerciseItems.Add(e1);
_context.SaveChanges();
Set s1 = new Set() { Rep = 10, Weight = 50, ExerciseId = e1.Id };
_context.SetItems.Add(s1);
_context.SaveChanges();
}
}
[HttpGet]
public IEnumerable<Workout> GetAll()
{
return _context.WorkoutItems;
}
}
}
現在,如果我火起來,然後得到了http://localhost:55556/api/workout
,我收到一個不完整的JSON看起來像這樣:
[
{
"id":1,
"name":"WO1",
"description":null,
"exerciseList":
[
{
"id":1,
"name":"E1",
"description":null,
"setList":
[
{
"id":1,
"rep":10,
"weight":50,
"numberOfDS":0,
"percentDrop":0.0
但是當我重新加載頁面時,json現在像thi S:
[{
"id":1,
"name":"WO1",
"description":null,
"exerciseList":null,
"archived":false
}]
現在,我只是試圖找出辦法有數據之間的關係能夠通過JSON發送完整的Workout
對象,而不是JSON與"setList":null
或不完整的一個。
謝謝!
你忘了補充一點,您所呼叫 –
您還沒有分配'context'到'在控制器的構造函數_context'的動作,所以這甚至不會工作。請發佈真實代碼 –
我剛剛添加了該操作並編輯了'_context = context;'。當我複製我的代碼時,我忘了它。 @CamiloTerevinto –