Я работаю над преобразованием старого приложения, написанного в powerbuilder, в приложение .NET. В этом процессе мы работаем со старой базой данных, и некоторые запросы, используемые в приложении powerbuilder, довольно сложно преобразовать в беглое отображение nhibernate (по крайней мере, для меня).
У меня есть следующий sql, чтобы получить список битов:
SELECT MYSCHEME.BIT.BIT_S,
MYSCHEME.BIT.BIT_NAME,
MYSCHEME.BIT.BIT_TYPE,
MYSCHEME.BIT.BIT_SIZE,
MYSCHEME.BS.BS_NAME,
MYSCHEME.CMS.WHOLE_S
FROM MYSCHEME.BIT join MYSCHEME.BS on ( MYSCHEME.BIT.BS_S = MYSCHEME.BS.BS_S )
left outer join MYSCHEME.OF on MYSCHEME.BIT.BIT_TYPE_S = MYSCHEME.OF.F_S
left outer join MYSCHEME.CMS on MYSCHEME.OF.OF_S = MYSCHEME.CMS.PART_S
WHERE ( MYSCHEME.BS.BS_S = 25)
Как мне отобразить это в nhibernate? Должен ли я использовать критерии и объединения или просто сопоставить его со ссылками на другие таблицы? Другая проблема заключается в том, что в базе данных имеется очень мало ключевых ограничений, например, нет ключевого ограничения между BIT и OF или CMS и OF.
Кто-нибудь знает, как решить эту проблему? Я также должен иметь возможность обновить CMS.WHOLE_S.
Первое соединение с таблицей BS не очень важно, так как оно предназначено только для получения «родительской» информации, я могу получить доступ к этой информации из других частей моего приложения.