私はこれらのクラスを持っています:
public class Project
{
public int ProjectId { get; set; }
public int AccountId { get; set; }
public int UserId { get; set; }
public string Name { get; set; }
public DateTime StartDate { get; set; }
public string Description { get; set; }
public string Tags { get; set; }
public virtual List<Task> Tasks { get; set; }
}
public class Task
{
public int TaskId { get; set; }
public int ProjectId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime StartDate { get; set; }
public DateTime? DueDate { get; set; }
public int TaskOwnerId { get; set; }
public string Tags { get; set; }
public virtual Project Project { get; set; }
public virtual List<TaskAssigned> TaskAssigns { get; set; }
public virtual List<TaskComment> TaskComments { get; set; }
}
public class TaskAssigned
{
public int TaskAssignedId { get; set; }
public int TaskId { get; set; }
public int UserId { get; set; }
}
そして、各ユーザーに割り当てられたタスクに基づいて、すべてのプロジェクトを各ユーザーに属するようにする必要があります。このソリューションを思いつきましたが、先に進むことができませんでした:
public List<Project> GetProjectsByAccountIdUserId(int accountId, int userId)
{
var tasks = context.TaskAssigns.Where(ta => ta.UserId == userId).ToList();
var projects =context.Projects.Where(p => p.AccountId == accountId).Include("Tasks").ToList();
return projects;
}
各プロジェクトのタスクを taskId で関連付けてフィルターする方法がわかりません。