正在获取用户已答复的请求
本文关键字:请求 获取 用户 | 更新日期: 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))