前提
Visual Studio2019 Community
ASP.NET Core MVC
.NET 5.0
初学者です。上記の開発環境で日報アプリを作成しています。
以下のようなテーブル構成です。
DBから取得した日報リストの絞り込み方法が分からないため、ご助言頂ければと思い、質問させていただきます。
実現したいこと
コントローラーにgroupIDが渡されているとき、グループに紐づけられたメンバーの日報を取得したいです。
ReportViewController/Index
public async Task<IActionResult> Index(int? groupID ) { var reports = _context.Reports; //groupID if(groupID!=null){ var group = _context.Groups.FindAsync(groupID); //groupIDから紐づけたユーザーの絞り込み処理 } reports.AsQueryable(); return View(); }
※using、コンストラクタなど、質問に直接関係のない箇所は省略しています。
試したこと
上記ユーザーの絞り込み処理の箇所に、以下のように書いたのですが、絞り込めていません。
reports.Where(s=>s.ReportUser.Members == group.Members);
補足情報
各テーブル(Model)を載せておきます。
Report.cs
//日報テーブル public class Report { public int ReportID { get; set; } public string ReportUserId { get; set; } public ReportUser ReportUser { get; set; } public bool IsSubmit { get; set; } }
ReportUser.cs
//ユーザーテーブル public class ReportUser:IdentityUser { public string Name { get; set; } public ICollection<Report> Reports { get; set; } public ICollection<Member> Members { get; set; } }
Member.cs
//メンバーテーブル public class Member { public int MemberID { get; set; } public int GroupID { get; set; } public Group Group { get; set; } public string ReportUserId { get; set; } public ReportUser ReportUser { get; set; } }
Group.cs
//グループテーブル public class Group { public int GroupID { get; set; } public int CompanyID { get; set; } public Company Company { get; set; } public string GroupName { get; set; } public ICollection<Member> Members { get; set; } }
不足している情報があれば、追記しますので、よろしくお願い致します。
まだ回答がついていません
会員登録して回答してみよう