2011-12-13 21 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