Мне удалось решить эту проблему, выполнив следующее.
В таблице есть составной ключ, используемый в качестве первичного ключа, я удалил составной ключ и добавил один столбец первичного ключа. Это новое отображение приводит к тому, что из запроса возвращаются правильные объекты.
Если у кого-либо есть объяснение, почему это так, пожалуйста, добавьте несколько комментариев. Спасибо.
<class name="Fact" table="Fact">
<id name="FactID">
<generator class="guid"/>
</id>
<many-to-one name="MarketDimension" column="MarketID" class="MarketDimension"/>
<many-to-one name="FactorDimension" column="FactorID" class="FactorDimension"/>
<property name="ReportMonth" />
<property name="ReportYear" />
</class>