.NET代码第一纬度经度接口

时间:2012-05-16 14:52:36

标签: vb.net entity-framework-mapping

我正在用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

我的问题是,如果让位置和邮政编码继承GeographicCoordinate界面,我会更好。我认为使用我当前的实现,我将有一个带有两个外键的GeographicCoordinates表(对于其他对象可能更多)。如果我使用inhearatance实现,我可以找到任何两个IGeographicCoordinate类之间的距离......

Public Function Distance(byval LHS as IGeographicCoordinate, _
    byval RHS as IGeographicCoordinate)

使用inhearatance实现会将两个实体绑定在IGeographicCoordinates的两个实现中。我可以让类继承GeographicCoordinate类......

Public Class Location
    Inherits GeographicCoordinate
    Implements ILocation

我倾向于远离做那样的事情,因为我已经陷入了没有任何其他类的lat和long继承的类。

感谢。

1 个答案:

答案 0 :(得分:0)

我喜欢你已有的方式。除非由于某种原因,您很难将这些实体读写到数据库中,而不应该这样,我认为这样可以为您提供最大的灵活性。如您所说,如果您在邮政编码和位置上实现界面,则无法轻松提供与坐标相关的功能。如果继承,则限制了继承其他类的能力。那么,如果其他两个选项都有缺点,而你提出的想法没有,为什么不使用呢?除非你能想到一些你没有提到的缺点吗?