Есть несколько способов сделать это в зависимости от того, как вы хотите, чтобы ваша модель домена выглядела. Мой предпочтительный выбор - использовать пользовательский тип коллекции, например IOdometerReadingCollection, к которому вы можете добавить дополнительные методы. В этом случае это может быть что-то вроде:
public interface IOdometerReadingCollection : IList<OdometerReading>
{
OdometerReading Latest { get; }
}
Таким образом, вы можете сделать:
OdometerReading reading = vehicle.OdometerReadings.Latest;
который я предпочитаю:
OdometerReading reading = vehicle.LatestOdometerReading;
Существует множество документов о пользовательских коллекциях, которые можно найти с помощью простого поиска в Google.
Если этот подход не для вас, есть другие варианты. Возможно, вы сможете использовать свойство с формулой (я не уверен, что оно работает со сложными типами?) Или регулярную ассоциацию NHibernate, где у вас будет ключ последней OdometerReading в вашем отображении транспортного средства. Как вы также упомянули, вы можете просто загрузить все OdometerReadings, что, в зависимости от вашего варианта использования, может быть вполне приемлемым.
Надеюсь, это поможет или, по крайней мере, укажет вам правильное направление.