现在我有 3 个表:用于多对多关联的 User、Roles 和 User_Roles。我想创建一个搜索函数,该函数接受 RoleID 列表并返回具有该角色的用户。但是如果 RoleID 列表为空,它应该返回所有 Users。
这是我到目前为止所拥有的..
public static List<User> SearchUser(List<int> roleIDs)
{
List<User> userList = new List<User>();
using (var db = new DBContext())
{
var users = (
from u in db.Users
join ur in db.User_Role
on u.UserID equals ur.UserID
join r in roleIDs
on ur.RoleID equals r
select u
).Distinct().ToList();
}
return userList;
}
但我无法找到一种方法来有条件地加入 User_Role 只有当 roleIDs 不为空时。
我也试过这个,但没有奏效。
var users = (from u in db.Users
from r in roleIDs
join ur in db.User_Role
on u.UserID equals ur.UserID
where roleIDs.Count == 0 || ur.RoleID == r
select u
).Distinct().ToList();
是否可以在实体框架中进行条件连接?