私は最近 C# と NHibernate を使い始めたので、これはすべて初心者です。
私が構築しているアプリケーションでは、英国の郵便番号間の距離を計算する必要があります。アプローチの 1 つは、グリッド参照とピタゴラス距離を使用することです。もう 1 つの方法は、Google マップを使用して距離を取得することです。
Ipostcode
メソッドとのインターフェースがgetDistance(IPostcode p)
あり、実装に応じて、クラスはさまざまなテーブルと通信します。
グリッド参照には、GridRefPostcode オブジェクトと DB テーブル ((string)postcode、(long)northing、(long)easting) を用意します。
Google マップの場合、GoogleMapsPostcode オブジェクトと DB テーブル: (string)postcode、(string)otherPostcode、(double)distance を使用します。
クラス Person にはフィールドがあり、両方のクラスから提供されたIPostcode
距離に基づいて距離を計算します。getDistance()
問題は次のとおりです:NHibernateでこのクラス関係をどのようにマッピングするのですか? インターフェイスをマッピングに適合させるにはどうすればよいですか?
人 ^ | | IPostcode (インターフェース) ^ ^ | | | | GridRefPostcode GoogleMapsPostcode
それは可能ですか?クラス構造を完全に変更する必要があるという直感がありますが、これが最も合理的な解決策のようです。Google が提供する 2 つの郵便番号の間に距離がある場合はそれを使用し、利用できない場合は降格します。 GridReferences。
どんなアイデアでも大歓迎です!