レガシー データベースを使用しており、特定のテーブルを使用してマップを作成しようとしています。
ユーザーのプロファイルがあり、プロファイルには連絡先チャネルへの参照があります。ただし、ユーザーのデータベース キーは複合キーです。これはある程度問題ありませんが、データベースにはいくつかの魔法の文字列があり、より型指定されたバージョンに変換できれば便利です。
プロファイル マップ:
CompositeId()
.KeyProperty(x => x.ServiceId, "SERVICE_ID")
.KeyProperty(x => x.Direction, "DIRECTION").CustomType<DirectionConverter>()
.KeyReference(x => x.Channel, new string[] { "CHANNEL_ID", "CONTACT_TYPE", "DIRECTION", "SERVICE_ID" })
.KeyProperty(x => x.ContactType, "CONTACT_TYPE")
.KeyReference(x => x.Agent, "AGENT_ID");
問題は次の行です。
.KeyReference(x => x.Channel, new string[] { "CHANNEL_ID", "CONTACT_TYPE", "DIRECTION", "SERVICE_ID" })
(したがって、チャネルには複合キーもあります...)
そのリファレンスでは、「DIRECTION」列の処理にコンバーターを使用するように流暢な nhibernate に指示する方法がわかりません。実際には、これは、コンバーターが NullSafeSet で null 値を受け取るためと見なすことができます。
これに対する既存の解決策はありますか、またはこの種の列にコンバーターを使用しない唯一のオプションですか?