2010-08-15 5 views
1

Quelqu'un peut-il indiquer la syntaxe LINQ équivalente pour cette requête dans C#?Conversion de SQL à LINQ en C#

SELECT  Users.UserName, UserStatus.StatusTitle, UserStatus.StatusDetails 
FROM UserStatus 
INNER JOIN Users ON UserStatus.UserId = Users.UserID 
where Users.userid=3 
OR users.userID in (
SELECT  UserFriends.FriendId 
FROM Users 
INNER JOIN UserFriends ON Users.UserID = UserFriends.UserId 
where Users.userid=3) 

Répondre

0
(from status in UserStatus 
join user in Users ON status.UserID equals user.UserID 
where user.UserID == 3 || 
(from u in users 
join friends in UserFriends on u.UserID equals friends.UserID where u.UserID == 3 
select friends.FriendId).Contains(user.UserID) 
select new {user.UserName, status.StatusTitle, status.StatusDetails}); 
+0

Au lieu de '.Tout (f => f == user.UserID)', 'Je pense .Contains (user.UserID)' est mieux, car il correspond plus étroitement SQL. – Gabe

+0

yup, c'est mieux. – Femaref