加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET linq选择多个连接

发布时间:2020-12-16 07:02:01 所属栏目:asp.Net 来源:网络整理
导读:我首先从EF代码获得这个数据库,现在我很难获得我的数据. 我有以下实体: 程序:是一个包含锻炼的锻炼计划. 锻炼:是一个包含集合列表的日常规. Set:是一个练习,在y加载时重复x次. 运动:是一个包含地区的健身运动. 地区:是人体上的一个区域,包含肌肉. 肌肉
我首先从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 -.-
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读