我最近开始使用C#和NHibernate,所以这对我来说都是新手。
在我正在构建的应用程序中,我需要计算英国邮政编码之间的距离。 其中一种方法是使用网格参考和毕达哥拉斯距离。 另一种方法是使用谷歌地图来获得距离。
我有一个方法Ipostcode
的界面getDistance(IPostcode p)
并且根据实现,类将与不同的表进行通信。
对于网格引用我将有GridRefPostcode对象和DB表:(字符串)邮政编码,(长)北,(长)东。
对于谷歌地图,我将使用GoogleMapsPostcode对象和数据库表:(字符串)邮政编码,(字符串)其他邮政编码,(双倍)距离。
类人物将有一个字段IPostcode
,然后我将根据这两个类提供的getDistance()
来计算距离。
现在的问题是:如何在NHibernate中映射这个类关系?我如何使界面适应映射?
Person ^ | IPostcode ( Interface ) ^ ^ | | GridRefPostcode GoogleMapsPostcode
甚至可能吗?我有一种直觉,我的班级结构需要彻底改变,但这似乎是最合理的解决方案:如果我在Google提供的2个邮政编码之间有距离,我会使用它,如果没有,我会下台GridReferences。
非常感谢任何想法!