Ich habe diese Datenbank von EF-Code zuerst, und jetzt habe ich eine schwierige Zeit, meine Daten zu bekommen.ASP.NET linq Wählen Sie mit mehreren Joins
Ich habe folgende Einheiten:
Programm: ist ein Workout-Programm, das Workouts enthält.
Training: ist eine Tagesroutine, die eine Liste von Sets enthält.
Set: ist eine Übungen wiederholt x mal mit y laden.
Übung: ist eine Gymnastikübung, die eine Region enthält.
Region: ist eine Region des menschlichen Körpers und enthält Muskeln.
Muskel: ist ein Muskel auf den menschlichen Körper.
Modellbeispiele
Hier gibt es 3 Modellbeispiele
public class Workout
{
[Key]
public int WorkoutId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<Set> Sets { get; set; }
}
public class Set
{
[Key]
public int SetId { get; set; }
//Foreign key for Exercise
public int ExerciseId { get; set; }
[ForeignKey("ExerciseId")]
public Exercise Exercise { get; set; }
public decimal Load { get; set; }
public decimal Order { get; set; }
}
public class Exercise
{
[Key]
public int ExerciseId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
//Foreign key for Region
public int RegionId { get; set; }
public Region Region { get; set; }
}
Und die eingerüstete Controller
// GET: api/Workouts
public IQueryable<Workout> GetWorkouts()
{
return db.Workouts;
}
Damit mich nur mit seinen iCollection Sets ein Workout Objekt gibt, ist null.
Mit den Sets kann ich die entsprechenden Sets bekommen.
Aber was, wenn ich ein Training bekommen möchte, einschließlich der Sets, und diese Sets würden Übungen enthalten, und diese Übungen würden Regionen enthalten, die am Ende eine Liste von Muskeln hatten?
Und was ist, wenn ich ein Training von id wollen, wie folgt aus:
[ResponseType(typeof(Workout))]
public IHttpActionResult GetWorkout(int id)
{
Workout workout = db.Workouts.Find(id);
if (workout == null)
{
return NotFound();
}
return Ok(workout);
}
Wie werde ich sind dann Sets?
EDIT Und von der Visual Studio Template/Hilfe-Seite, kann ich folgendes sehen:
GET api/Workouts/{id}
Sollte bieten med mit:
{
"workoutId": 1,
"name": "sample string 2",
"description": "sample string 3",
"sets": [
{
"setId": 1,
"exercise": {
"exerciseId": 1,
"name": "sample string 2",
"description": "sample string 3",
"regionId": 4,
"region": {
"regionId": 1,
"regionName": "sample string 2",
"muscles": [
{
"muscleId": 1,
"latinName": "sample string 2",
"dkName": "sample string 3",
"enName": "sample string 4",
"description": "sample string 5"
},
{
"muscleId": 1,
"latinName": "sample string 2",
"dkName": "sample string 3",
"enName": "sample string 4",
"description": "sample string 5"
}
]
}
},
Aber es einfach gewohnt passieren, im offen für alles, was mir ein komplettes Programm in JSON zurückgibt. skype, teamwier, stack, eine andere Lösung, anyhting.
Kennen Sie schon [diese] (https://msdn.microsoft.com/en-us/data/jj574232.aspx#eagerLevels)? – user1429080
Sollten Sie 'SetId' in' WorkOut' nicht haben? – Mairaj
Ich glaube nicht –