私はpowerbuilderで書かれた古いアプリを.NETアプリに変換しようとしています。このプロセスでは、古いデータベースを使って作業していますが、powerbuilderアプリケーションで使用されているクエリの中には、(少なくとも私にとって)nhibernateの流暢なマッピングに変換するのは非常に難しいものです。map tripleはSQLをnhibernateに結合します。 (奇妙なデザインの古いデータベース)
私はビットのリストを取得するには、以下のSQLを持っている:私はNHibernateのにこれをマップする必要がありますどのように
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)
を?条件と結合を使用するか、他のテーブルへの参照でマップするだけですか?もう1つの課題は、BITとOF、またはCMSとOFの間にキー制約がないなど、データベースに重要な制約がほとんどないことです。
誰もがこの課題を解決する方法を知っていますか? CMS.WHOLE_Sも更新できる必要があります。
BSテーブルへの最初の結合はそれほど重要ではありません。なぜなら、親情報を取得するだけなので、アプリケーションの他の部分からその情報にアクセスできます。