我有一个看起来像这样的linq查询:
IQueryable<Incident> listUnpaged = db.Incidents.OrderByDescending(d => d.IncidentDate);
listUnpaged = listUnpaged.Where(s => s.User.UserName == user);
listUnpaged = listUnpaged.Where(s => !s.PostPrivate);
这是一个查询,用于显示特定用户的事件,如果标记为私有,则不显示。 PostPrivate
允许用户定义事件是否是私有的,因此如果事件是私有的,则不会在事件的主列表中显示它。这很有效。
但是,如果请求的人是所有者,它也不会显示事件。所以,对于最后一行,我需要做类似的事情:
listUnpaged.Where(s => !s.PostPrivate //but only where the requestor (userId) is not the owner of the incident (s.UserId))
希望这有意义吗?
我试过了:
listUnpaged.Where(s => !s.PostPrivate).Where(t => s.UserId != userId);
但是,这没有结果。
我还在考虑简单地使用if
语句来否定该行,以确定userId
是否为所有者,但在查询运行之前我不知道s.UserId
非常感谢任何帮助。
答案 0 :(得分:1)
如何在一个地方使用它们?
listUnpaged = listUnpaged
.Where(s => s.User.UserName == user || !s.PostPrivate);