Evitando múltiples instancias después de la unión interna
tengo un pequeñoproblema con varias instancias del mismo objeto después de una unión a otra tabla. Para pruebas creo uno.Store
con dosProducts
(Relación de muchos a muchos). El siguiente fragmento con suerte describe mi 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
Incluso creo que este comportamiento es correcto, pero ¿cómo puedo evitar las múltiples instancias? ¿Es posible dentro de la consulta?
Sólo para información por qué necesito hacer estoinnecesario unirse: quiero extender la consulta de acuerdo a diferentes críticas, similar a esto:
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();
Aquí me encontré con diferentes problemas, dependiendo de los criterios.