我是新的lambda表達式,嘗試了不同的代碼變體,但沒有解決它,我沒有關於如何解決這個問題的更多想法。如何選擇所有沒有使用lambda表達式的用戶?
我有一個用戶表,它包含關於用戶的一般信息和關於每列保存用戶ID(關注用戶的列和關注用戶的列)的關係表。我想從用戶表中選擇所有沒有給定用戶ID的用戶。
任何幫助表示讚賞。
我是新的lambda表達式,嘗試了不同的代碼變體,但沒有解決它,我沒有關於如何解決這個問題的更多想法。如何選擇所有沒有使用lambda表達式的用戶?
我有一個用戶表,它包含關於用戶的一般信息和關於每列保存用戶ID(關注用戶的列和關注用戶的列)的關係表。我想從用戶表中選擇所有沒有給定用戶ID的用戶。
任何幫助表示讚賞。
這是唯一的sqlserver端代碼,它只是你的應用程序端的邏輯。
declare @user table (id int, name varchar(50))
declare @userdetail table (id int, followerid int , followedid int)
insert into @user values(1, 'a'), (2, 'b'), (3, 'c'),(4,'d'),(5,'e')
insert into @userdetail values(1, 5,0),(2, 1,3),(3, 4,2),(4, 1,2)
/*to get followed list*/
select distinct name
from @user u
inner join @userdetail followed on u.id = followed.followedid
/*to get un-followed list*/
select distinct name
from @user u
where u.id not in
(select distinct followedid from @userdetail)
此示例返回其不跟用戶ID爲3的所有用戶:
var result = context.Users.Where(user => !context.Follow.Any(follow => follow.followedID == user.ID && follow.followerID == 3));
但我建議creteate用戶之間的關係(外鍵),並按照表。然後你可以使用更清晰的表達式:
var result = context.Users.Where(user => !user.Followed.Any(follow => follow.followerID == 3))
你能告訴我們數據庫結構嗎? – Dominique 2014-11-01 11:21:08
用戶表具有主鍵ID列和用戶詳細信息列。跟表有3列即行ID,跟隨者ID和跟隨ID。 例如,我的用戶表ID是1,在下表中,我跟隨其ID爲2的用戶。表格顯示爲ID = 123跟隨者ID = 1,ID = 2 – 2014-11-01 11:28:08
,但同一用戶有多個條目。即對於單個用戶,他可以跟隨5人並且10人跟隨他。那麼如何處理多個條目schenerio – Ajay2707 2014-11-01 11:33:50