I have a issue with QueryOver,
I have 2 tables.
1st table is Person table.
And a person has many addresses. so my 2nd table is Addresses.
Ist table
Id Person name
Second table
addressid street1 street2 postcode city country PersonId
say I want to query the address table by city and find the persons
with city say = 'texas' and person name as say = 'john'
var detachedAddressQueryOver = QueryOver.Of() .Where(x =>
x.City.IsLike("%" + city + "%")) .Select(x => x.Person.Id); //project
PersonrId
queryOverList = Session.QueryOver() .Where(x => x =>
x.Name).IsLike("%" + name + "%")) .WithSubquery .WhereProperty(x =>
x.Id) .In(detachedAddressQueryOver)
But the problem is that every person in Person table does not have a
address and hence does not have a city. So if I only search by name
and pass in null for city, since it has only a few persons, returns
all of the to the with subquery function.
Say personId 1 and 2 will be there in the address table, so if you
search by null for city, it will return only 1 and 2. So I need a way
to ommit detachedAddressQueryOver when city is null.