VB.NET-Code First でデータベースを開発しています。ロケーションと郵便番号の両方に緯度と経度を追加したいと考えています。現在、各クラスに GeographicCoordinate を追加しています。
Public Interface ILocation
Property Street As String
Property City As ICity
Property State As IState
Property Postal_Code As IPostalCode
Property Country As ICountry
Property Coordinate As IGeographicCoordinate
Public Interface IPostalCode
Property ZIP As String
Property Time_Zone As ITimeZone
Property Coordinate As IGeographicCoordinate
Public Interface IGeographicCoordinate
Property Latitude As Decimal
Property Longitude As Decimal
私が持っている質問は、代わりに Location と Postal Code が GeographicCoordinate インターフェースを継承する方が良いかということです。現在の実装では、GeographicCoordinates テーブルに 2 つの外部キー (および他のオブジェクトの場合はさらに多い可能性があります) を持つことになると思います。inhearatance の実装を使用すると、任意の 2 つの IGeographicCoordinate クラス間の距離を見つけることができます...
Public Function Distance(byval LHS as IGeographicCoordinate, _
byval RHS as IGeographicCoordinate)
inheratance 実装を使用すると、IGeographicCoordinates の 2 つの実装で両方のエンティティが結び付けられます。クラスに GeographicCoordinate クラスを継承させることもできます...
Public Class Location
Inherits GeographicCoordinate
Implements ILocation
私はそのようなことを避ける傾向があります。なぜなら、緯度と経度を持つクラスが他のものから継承されないことに縛られているからです。
ありがとう。