我有一个用户和角色表。一个用户可以有多个角色。
我想抓住所有没有特定角色的用户。问题是如果一个用户有 2 个角色,一个是我们不想要的角色,用户仍然会被返回。
public IList<User> GetUserByWithoutRole(string role)
{
return CreateQuery((ISession session) => session.CreateCriteria<User>()
.CreateAlias("Roles", "Roles")
.Add(!Restrictions.Eq("Roles.RoleDescription", role))
.List<User>());
}
我想出的唯一解决方案是客户端
public IEnumerable<User> GetUserByWithoutRole(string role)
{
return CreateQuery((ISession session) => session.CreateCriteria<User>()
.CreateAlias("Roles", "Roles")
.Add(!Restrictions.Eq("Roles.RoleDescription", role))
.List<User>()).Where(u => u.Roles.FirstOrDefault(r => r.RoleDescription == role) == null);
}
有人知道更好的解决方案吗?谢谢!