【发布时间】:2012-06-12 01:22:56
【问题描述】:
现在我有 3 个表:用于多对多关联的 User、Roles 和 User_Roles。我想创建一个搜索函数,该函数接受一个 RoleID 列表并返回具有该角色的用户。但如果 RoleID 列表为空,则应该返回所有用户。
这是我目前所拥有的......
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();
是否可以在实体框架中进行条件连接?
【问题讨论】:
标签: c# entity-framework