Impedindo várias instâncias após a junção interna
Eu tenho um pequenoproblema com várias instâncias do mesmo objeto após uma junção a outra tabela. Para testar eu crio umStore
com doisProducts
(ManyToMany-Relation). O snippet a seguir descreve o meu problema.
var preResult = _session.QueryOver<Store>().List(); // One store
Product productAlias = null;
var result = _session.QueryOver<Store>()
.JoinAlias(s => s.Products, () => productAlias)
.List(); // Two instances of the same store
Eu até acho que esse comportamento está correto, mas como posso evitar as várias instâncias? É possível dentro da consulta?
Apenas por informações porque eu preciso fazer issodesnecessário join: Eu quero estender a consulta de acordo com diferentes criticas, semelhante a isto:
Product productAlias = null;
var query = _session.QueryOver<Store>().JoinAlias(s => s.Products, () => productAlias);
if (!string.IsNullOrWhiteSpace(criteria.ProductName))
{
query.Where(Restrictions.On(() => productAlias.Name).IsInsensitiveLike(criteria.ProductName));
}
if (criteria.ProductType != null)
{
query.Where(s => productAlias.Type == criteria.ProductType);
}
var result = query.List();
Aqui eu me deparei com problemas diferentes, dependendo dos critérios.