正在获取用户已答复的请求

本文关键字:请求 获取 用户 | 更新日期: 2024-09-21 13:18:49

我有两个表请求答案,列RequestId将它们绑定在一起。现在,我可以通过做一些事情来获得特定请求的答案,比如,请求。答案…

但是,如何使用此关系仅获取Answers中UserId-列等于某个值的请求?

我想要实现的是,用户只能列出他已经回答的请求。

类似于:

    Requests.Where(x=>x.Answers(y=>y.UserId==currentUserId))

    public class Request
    {
       [Key]
       public int RequestId { get; set;
       public virtual ICollection<Answer> Answers { get; set; }
    }
    public class Answer
    {
       [Key]
       public int AnswerId { get; set; }
       public int RequestId { get; set; }
       public virtual Request Request { get; set; }
       public int UserId { get; set; }
     }

我已经设法解决了这个问题,首先获取所有的AnswersId,并按RequestId分组,然后循环查看结果,将请求添加到列表中。但这似乎是一种非常无效的方式。

有没有更简单的方法来完成这件事?

谢谢!

正在获取用户已答复的请求

这将返回所有具有答案的请求

Requests.Where(r => r.Answers.Any())

您尚未在Answer实体上提供任何UserId属性。但如果你有一个,那么从特定用户那里获得所有有答案的请求看起来就像

Requests.Where(r => r.Answers.Any(a => a.UserId == userId))