Kas*_*røm 5 asp.net entity-framework-4
我首先从EF代码获得这个数据库,现在我很难获得我的数据.
我有以下实体:
程序:是一个包含锻炼的锻炼计划.
锻炼:是一个包含集合列表的日常规.
Set :是一个练习,在y加载时重复x次.
运动:是一个包含地区的健身运动.
地区 :是人体上的一个区域,包含肌肉.
肌肉 :是人体的肌肉.
这是3个模型示例
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; }
}
Run Code Online (Sandbox Code Playgroud)
和脚手架控制器
// GET: api/Workouts
public IQueryable<Workout> GetWorkouts()
{
return db.Workouts;
}
Run Code Online (Sandbox Code Playgroud)
所以这只给了我一个带有iCollection集的Workout对象为null.
// GET: api/Workouts
public IQueryable<Workout> GetWorkouts()
{
return db.Workouts.Include(w => w.Sets);
}
Run Code Online (Sandbox Code Playgroud)
通过包含集我可以得到相应的集.
但是如果我想得到一个锻炼,包括集合,那些集合将包括练习,那些练习将包括最终有肌肉列表的区域?
如果我想从id锻炼,如下所示:
[ResponseType(typeof(Workout))]
public IHttpActionResult GetWorkout(int id)
{
Workout workout = db.Workouts.Find(id);
if (workout == null)
{
return NotFound();
}
return Ok(workout);
}
Run Code Online (Sandbox Code Playgroud)
那我怎么会包括套装?
编辑 从Visual Studio模板/帮助页面,我可以看到以下内容:
GET api/Workouts/{id}
Run Code Online (Sandbox Code Playgroud)
应该提供医疗:
{
"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"
}
]
}
},
Run Code Online (Sandbox Code Playgroud)
但它只是不会发生,我打开任何让我返回JSON完整程序的东西.skype,teamwievr,堆栈,另一种解决方案,anyhting.
最后我明白了:
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 virtual Region Region { get; set; } //had to be virtual -.-
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |