Да, это действительно возможно, правильно или неправильно, вы можете заставить его работать так, как вы настроили свои классы.Для этого вы можете использовать маппер, подобный следующему:
public class ClientSummaryMappingOverride : IAutoMappingOverride<ClientSummary>
{
public void Override(AutoMapping<ClientSummary> mapping)
{
mapping.References(x => x.Totals, "Totals_id");
mapping.References(x => x.In_Totals, "In_Totals_id");
mapping.References(x => x.Out_Totals, "Out_Totals_id");
mapping.References(x => x.Direct_Totals, "Direct_Totals_id");
mapping.References(x => x.CPN_Totals, "CPN_Totals_id");
}
}
После того, как вы настроили свою карту, вам просто нужно убедиться, что ваша хранимая процедура или SQL-запрос возвращает записи ClientSummary с соответствующим «Totals_id»введите поля.NHibernate подберет эти идентификаторы и сопоставит их с правильными данными (я полагаю, что Lazy Load зависит от ваших соглашений или других сопоставлений).