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.

Reply via email to