首页 > 解决方案 > 从父子表中获取记录......我想从父控制器的父表中访问子表属性

问题描述

父表 public class Activity { public int ActivityId { get; 放; }

    public string ActivtiyName { get; set; }
    [JsonIgnore]
    public List<ActivityFeature> ActivityFeature { get; set; }
    
}

子表

public partial class ActivityFeature
{
    public int FeatureId { get; set; }
   
    public string FeatureName { get; set; }

    public bool IsChecked { get; set; }
    //Navigation properties
    public int ActivityId { get; set; }
    public Activity Activity { get; set; }
}

控制器公共异步任务<ActionResult<IEnumerable>> GetActivity() {

        //_context.Activity.Include(e => e.ActivityFeature).ToList();
        var Activty = _context.Activity
        .Select(c => new
        {
            ActivityId = c.ActivityId,

            ActivityFeatures = c.ActivityFeature
        }).ToList();


        return _context.Activity;
    } 

标签: c#asp.net-core.net-coreasp.net-web-api

解决方案


尝试这个

 var activty = _context.Activity
.Include(i=> i.ActivityFeature)
.ToList();

或者,如果您想要一项活动并提供 id

 var activty = _context.Activity
. Where (i=> i.ActivityId==id)
.Include(i=> i.ActivityFeature)
.FirstOrDefault();

或只是子表

 var activtyFeatures = _context.Activity
. Where (i=> i.ActivityId==id)
.Select(i=> i.i.ActivityFeature)
.FirstOrDefault();

或相同的结果

var activtyFeatures = _context.ActivityFeature
.Where(i=> i.ActivityId=id)
.ToList();
       

推荐阅读