我有一些项目被称为 代码 它可以创造和订阅。当他们创建的,他们有一个范围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))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top