I alos get wrong results. I tried to isolate it. We have two tables (Tag and TagAssignment) which are joined by a join table (Tag_To_TagAssignment).
Correct results (showing the data in the database):
SELECT DBID FROM TagAssignment
----------
1
2
----------
SELECT DBID FROM Tag
----------
1
2
----------
SELECT TagAssignment_FK, Tag_FK FROM Tag_To_TagAssignment
----------
1 2
1 1
2 1
----------
NHibernate: SELECT TagAssignment.DBID, Tag_To_TagAssignment.TagAssignment_FK
FROM
TagAssignment
inner join Tag_To_TagAssignment
on TagAssignment.DBID = Tag_To_TagAssignment.TagAssignment_FK
WHERE Tag_To_TagAssignment.Tag_FK = '1'
----------
1 1
2 2
----------
NHibernate: SELECT Tag_To_TagAssignment.Tag_FK, Tag.DBID
FROM
Tag_To_TagAssignment
inner join Tag
on Tag_To_TagAssignment.Tag_FK = Tag.DBID
WHERE Tag.DBID = '1'
----------
1 1
----------
Wrong Result:
NHibernate: SELECT TagAssignment.DBID, Tag_To_TagAssignment.TagAssignment_FK, Tag_To_TagAssignment.Tag_FK, Tag.DBID
FROM
TagAssignment
inner join Tag_To_TagAssignment
on TagAssignment.DBID=Tag_To_TagAssignment.TagAssignment_FK
inner join Tag
on Tag_To_TagAssignment.Tag_FK=Tag.DBID
WHERE Tag.DBID = '1'
----------
2 2 1 1
One row is missing.
Result of same query on 1.0.48.0
----------
1 1 1 1
2 2 1 1