NHibernate: QueryOver <> ajuda
Estou começando no NHibernate e estou tendo problemas para executar consultas mais complexas.
Eu tenho entidades com uma lista de tags anexadas. O usuário fornecerá duas listas de tags, incluir e excluir.
Preciso encontrar todas as entidades que possuem todas as tags de inclusão e excluir quaisquer entidades que tenham qualquer tag na lista de exclusão.
Abaixo está o meu primeiro esforço - que é claramente errado, pois lista todos os objetos Display que possuem qualquer uma das tags de inclusão em vez de todas!
Qualquer assistência é muito apreciada.
var includeTagIds = (from tag in regime.IncludeTags select tag.Id).ToList<int>();
var excludeTagIds = from tag in regime.ExcludeTags select tag.Id;
var displays = session.QueryOver<Display>()
.JoinQueryOver<DisplayTag>(display => display.Tags)
.WhereRestrictionOn(tag => tag.Id)
.IsIn(includeTagIds).List().Distinct();
return displays.ToList();