2012-01-04 16 views
2

私はこれを私のモデルとして持っています。LINQはクエリを選択

enter image description here

私が探しているすべてのユーザーの友人のUserActivity.DateTimeによって並べ替え私のUserActivityレコードを与えることができますLINQ式、です。

つまり、ユーザーに3人の友人がいる場合、3人の友人の活動記録が必要です。

私は.In.Containsを使用しようとしましたが、私のLINQは現時点でかなり劣っています。

誰かが私に同じ結果を与えるdifferntモデルを提案できますか?

+0

Hrmmは、 - それが壊れる 'ASPNET schema'?!?! – xandercoded

+0

おそらくそうはしませんが、そうしたくないのです – griegs

+1

UserFriend.FriendUserIdとUserActivity.UserIdを関連付けるべきでしょうか? – griegs

答えて

1

をこのことができますかどうかは知らないが、それがありました私の頭の上に私はそれをテストしていない:-)これは助けて欲しい。 USER_IDは、友だちのアクティビティを表示するユーザーです。あなたが `` aspnet_User`にFriendUserId`を列を追加した場合、外部キーを自己参照して、何が起こるか

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; 
+0

ありがとうございます。これは治療のように機能します。 – griegs

3

あなたはこのような何かのために友人の活動は、あなたと、現在のスキーマを動作するはずですしたいユーザのユーザIDがある場合:

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

UserFriend.FriendUserIdとUserActivity.UserIdを関連付けるべきでしょうか? – griegs

+0

これはクラスであり、テーブルではありません。 fksではなく参照を追加する必要があります。 – ivowiblo

+0

私はこれが好きですが、ジョルを必要としないので、@ Qorbaniが少し良くなっていました。 – griegs

関連する問題