2016-02-05 1 views
0

У объектов Topic и Users есть отношения «многие ко многим». «Таблица посередине» используется для функции подписки, User может подписаться на несколько Topic с.Получить объект по id подкласса (отношение «многие ко многим»)

Я пытаюсь проверить, подписан ли User на какой-то Topic или нет. Если возвращается null, то это означает, что User не подписан на Topic.

Это структура:

Topic.Id = topicId 
Topic.Users.FirstOrDefault().Id = userId 

Я попытался это:

Проблема вызывает эту часть t.Users.FirstOrDefault() я думаю ... Если несколько пользователей подписаны на тот же Topic, то он работает только для одного User. Он должен был бы проверить все Topic.Users, а не только FirstOrDefault().

+0

Тогда, пожалуйста, сделайте свой вопрос более ясным, предоставив четкое описание проблемы и весь код, связанный с поднятием проблемы. –

+0

@GertArnold Я отредактировал мой вопрос. Надеюсь, теперь это имеет смысл. –

+0

Не совсем. Что вы подразумеваете под * Это должно было бы проверить всех пользователей *? Тогда что должен делать 'userId'? –

ответ

2
using (var ctx = new TestContext()) 
{ 
    var isSubscribed = ctx.Topics.Any(topic => topic.ID == topicId 
             && topic.Users.Any(user => user.Id == userId)); 
} 
+0

Спасибо. 'Any()' то, что мне нужно. :) –

Смежные вопросы