题
我有一些项目被称为 代码 它可以创造和订阅。当他们创建的,他们有一个范围1:私人或2:公众。公共行情可以订阅的任何人和私人行情可以订阅的所有人的邀请。
我想要使用皇宫得到行情创建由用户(即:与某些主id),[1]公[2]已经签署的当前用户。
TickerUser Ticker
========== ======
TickerUserId <-- TickerId
TickerId OwnerId
UserId ScopeId
public IQueryable<Ticker> GetTickersByOwnerAll(int ownerId) {
return from ticker in db.Tickers
where ticker.OwnerId == ownerId
select ticker;
}
/// THIS PART IS INCORRECT -- DO NOT USE
public IQueryable<Ticker> GetTickersByOwnerVisible(int ownerId) {
int currId = CurrentUser.GetCurrentUser().ID;
return GetTickersAll(ownerId)
.Where(t => t.ScopeId == 2)
.Where(t => t.TickerUsers.Where(tu => tu.UserId == currId));
}
最后一线是不正确的但你可以看到我在那里想要去做。我漂亮的新皇宫所以我不认为它的正确方法。我要去哪里错了吗?
解决方案
db.Tickers.Where(t =>
// The ticker is public...
(t.ScopeId == 2)
// ...or any of the ticker users is the current user.
|| t.TickerUsers.Any(tu => tu.UserId == currId))
不隶属于 StackOverflow