LINQ select query - PullRequest
       1

LINQ select query

2 голосов
/ 04 января 2012

У меня есть эта модель;

enter image description here

То, что я ищу, это выражение LINQ, которое может дать мне записи UserActivity, отсортированные по UserActivity.DateTime всех друзей пользователей.

Другими словами, если у пользователя есть три друга, я хочу записи активности этих трех друзей.

Я пытался использовать .In и .Contains, но мой LINQ сейчас довольно слабый.

или кто-нибудь может предложить другую модель, которая дала бы мне такие же результаты?

Ответы [ 2 ]

3 голосов
/ 04 января 2012

Если у вас есть идентификатор пользователя, которому вы хотите, чтобы действия друзей для чего-то подобного работали с вашей текущей схемой:

var results = from user in aspnet_User 
              join friend in UserFriend on user.UserId equals friend.UserId
              join activity in UserActivity on activity.UserId equals friend.FriendUserId
              where user.UserId == someUserId
              orderby activity.DateTime ascending
              select activity;
1 голос
/ 04 января 2012

Я не знаю, помогает ли это или нет, но это было на моей голове, и я даже не проверял это :-) Надеюсь, это поможет USER_ID - это пользователь, которого вы хотите видеть в действиях своих друзей.

from a in UserActivity
where 
  (
     from f in UserFriend 
     where f.Userid == USER_ID 
     select f.FriendUserId
  )
  .Distinct().ToList().Contains(a.UserId)
order by a.DateTime
select a;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...