I'm encountering an issue while working with NHibernate queries and joins. I have a scenario where I need to retrieve Holding entities based on specific conditions related to Insurance and Depot associations. However, when I attempt to combine these conditions using separate queries and joins, I'm getting unexpected results or crashes.
Interestingly, both separate queries work fine individually.
Session.QueryOver<Holding>(() => holdingAlias)
.WithSubquery.WhereProperty(h => h.Id).In(holdings)
.Where(h => h.Insurance != null || h.Depot != null)
.Left.JoinAlias(h => h.Insurance, () => insuranceAliasFilter)
.Left.JoinAlias(h => h.Depot, () => depotAliasFilter)
.Where((h) => h.Depot == null && insuranceAliasFilter.InsuranceCompany != null && insuranceAliasFilter.InsuranceCompany.Id == insuranceCompanyId
|| h.Insurance == null && depotAliasFilter.InsuranceCompany != null && depotAliasFilter.InsuranceCompany.Id == insuranceCompanyId)
// test output
.SelectList(list => list
.Select(() => depotAliasFilter.InsuranceCompany.Id)
.Select(() => insuranceAliasFilter.InsuranceCompany.Id))
.Take(10).List<object>()
Some sugestions? Thx.
I expect to retrieve a list of Holding entities that match either the Insurance condition or the Depot condition