I’m using NHibernate version 2.1.2 GA and the 2.1.2 Linq version that goes with it.

And I like to state that I’m not complaining, but perhaps I can save some people from losing too much time while trying this. You still have plenty of other options if Linq does not work in your situation.

So let’s say I have this Person Object

Public Class Person
  Private _name as String
  Private _addresses as Ilist(Of Address)


End Class```
And as we see in the above, also a Class Address

Public Class Address
  Private _straat as String


End Class```
I won’t bore you with the mapping file because they are straightforward.

The thing I want is to have all the address for persons with a name beginning with A (I know it’s stupid but that’s not the point)

So I have this HQL that works nicely.

_Query = _Session.CreateQuery("SELECT elements(p.Addresses) FROM Person p  WHERE p.Name LIKE 'A%'")
_ReturnObject = _Query.List(Of Address)()```
This should return me a nice list af Addresses where a Person has a name starting with A (so now the callcenter can start calling those persons ;-))

I cannot make a one statement Linq for this.

The closest I got is this:

Dim _Query = From e In _Session.Linq(Of Person)() Where e.Name.StartsWith("A") Select e
For Each person In _Query
  For Each address In person.Addresses
The next thing I found not to be working is Nullables

For example, if you have this Class

Public Class Person
  Private _birthDate as Nullable(Of Date)

End Class

Considering that BirthDate could be empty (I know, I know but work with me here).

The following HQL works.

_Query = _Session.CreateQuery("from Person p where p.BirthDate>=:FromDate AND p.BirthDate <:ToDate")
_Query.SetDateTime("FromDate", New Date(Year, 1, 1))
_Query.SetDateTime("ToDate", New Date(Year + 1, 1, 1))
_ReturnList = _Query.List(Of Person)()```
The following Linq Statement will return null/nothing.

Dim _Query = From e In _Session.Linq(Of Person)() Where e.BirtDate>=fromdate AndAlso e.BirthDate<ToDate Select e

I tried a whole lot of different things but I just can’t get it to work. So I’m sticking to HQL or Criteria for that one at the moment.