我首先从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; } }
和脚手架控制器
// GET: api/Workouts public IQueryable<Workout> GetWorkouts() { return db.Workouts; }
所以这只给了我一个带有iCollection集的Workout对象为null.
// GET: api/Workouts public IQueryable<Workout> GetWorkouts() { return db.Workouts.Include(w => w.Sets); }
通过包含集我可以得到相应的集.
但是如果我想得到一个锻炼,包括集合,那些集合将包括练习,那些练习将包括最终有肌肉列表的区域?
如果我想从id锻炼,如下所示:
[ResponseType(typeof(Workout))] public IHttpActionResult GetWorkout(int id) { Workout workout = db.Workouts.Find(id); if (workout == null) { return NotFound(); } return Ok(workout); }
那我怎么会包括套装?
编辑
从Visual Studio模板/帮助页面,我可以看到以下内容:
GET api/Workouts/{id}
应该提供医疗:
{ "workoutId": 1,"name": "sample string 2","description": "sample string 3","sets": [ { "setId": 1,"exercise": { "exerciseId": 1,"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,"description": "sample string 5" } ] } },
但它只是不会发生,我打开任何让我返回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 -.- }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。