我想写一个简单的查询,但有一些问题。
我有 2 个表 M 到 N:
用户 -> 事件。
我想获取特定事件的所有用户(通过 eventId 获取此事件)。
public IQueryable<User> GetUsersByEventId(int eventId)
{
IQueryable<User> query = this.Context.Users.AsQueryable();
return query.Where(x => x.Events.SingleOrDefault(e => e.EventId == eventId)); ??
}
缺少一些东西,我不知道是什么,有人可以帮助我吗?多谢 !
如果我理解正确(添加你的模型会有所帮助),我认为你想要Any
public IQueryable<User> GetUsersByEventId(int eventId)
{
return Context.Users
.Where(u => u.Events.Any(e => e.EventId == eventId));
}
这应该返回具有与给定 ID 匹配的任何事件的所有用户。
注意:如果您正确设置了关系,您应该能够直接从事件中获取此信息。
public class Event
{
...
public virtual ICollection<User> Users { get; set; }
}
然后,您可以通过 id 获取事件并访问它的用户集合。
var evt = repo.GetEventById(id);
var users = evt.Users;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)