私はusersとrolesテーブルを持っています。ユーザーは複数の役割を持つことができます。NHibernateクエリーコレクション
私は特定の役割を持たないすべてのユーザーをつかみたいと思っています。問題は、ユーザーが2つの役割を持っている場合です.1つは私たちが望まない役割であり、ユーザーはまだ返されます。
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);
}
でしたか?ありがとう!