2011-12-13 22 views
0

我有我的表: aspnet_UsersInRoles aspnet_Role aspnet_Users ApiUsers如何使用LINQ僅在相關表中沒有結果時選擇?

我只需要選擇具有作用「ProductOwner」,而目前還沒有在ApiUsers的入門用戶。我現在使用hasMany表的原因是模式可能會改變,這使得調整變得容易。這裏是我當前的查詢:

ddNewApiUserParentUser.DataSource = from u in dbc.aspnet_UsersInRoles 
             where u.aspnet_Role.RoleName == "ProductOwner" 
             select new { u.aspnet_User.UserId, u.aspnet_User.UserName }; 

這得到所有用戶的角色ProductOwner但是仍然得到他們是否已經有在ApiUser至少一行。 所有的外鍵通過UserId連接。如果他們在ApiUser中有0個計數(通過UserId的關係),我將如何讓他們獲得ProductOwner的角色名稱?

非常感謝, 達倫

回答

1

我想你想是這樣的:

ddNewApiUserParentUser.DataSource = 
    from u in dbc.aspnet_UsersInRoles 
    where u.aspnet_Role.RoleName == "ProductOwner" && 
     !u.aspnet_User.ApiUsers.Any() 
    select new { u.aspnet_User.UserId, u.aspnet_User.UserName }; 
+0

感謝,這正是我一直在尋找,我還創建了關係。 – Darren 2011-12-13 23:33:32