私はレガシーデータベースを使用しており、多対1のマッピングのためにcharをintに変換しようとしています。これは素晴らしいアイデアではないことはわかっていますが、スキーマをそのまま使用しています。
次のマッピングでこれを実行しようとしましたが、NHibernateがテーブル名のエイリアスをキーワードに追加していることがわかりましたSQL_INTEGER
。
<many-to-one name="host" formula="CONVERT(alloc_code, SQL_INTEGER)" />
SQLを生成します
CONVERT(hostplacem0_.alloc_code, hostplacem0_.SQL_INTEGER)
私はこの投稿を見つけましたが、解決策は私の状況では実行可能なものではありません。
注意すべき点の1つは、NHibernateがそのままではサポートしていないため、使用するDBMS(Sybase Advantage Database Server)用に独自の方言を使用していることです。したがって、この問題に対処するためにこれを修正するオプションがあります。私はすでにSQL_INTEGER
キーワードとして登録しようとしましたが、それは役に立ちませんでした。