4

我最近开始使用 C# 和 NHibernate,所以这一切对我来说都是新手。

在我正在构建的应用程序中,我需要计算英国邮政编码之间的距离。其中一种方法是使用网格参考和毕达哥拉斯距离。另一种方法是使用谷歌地图来获取距离。

我有一个Ipostcode带有方法的接口,getDistance(IPostcode p) 并且根据实现类将与不同的表交谈。

对于网格引用,我将拥有 GridRefPostcode 对象和 DB 表:(string)postcode、(long)northing、(long)easting。

对于谷歌地图,我将谷歌地图邮政编码对象和数据库表:(字符串)邮政编码,(字符串)其他邮政编码,(双)距离。

类 Person 将有一个 field IPostcode,然后我将根据getDistance()两个类提供的距离计算距离。

现在的问题是:如何在 NHibernate 中映射这种类关系?我如何将接口融入映射?

                   人
                      ^
                      |
                  IPostcode ( 接口 )
                   ^ ^
                   | |
      GridRef邮政编码谷歌地图邮政编码

甚至可能吗?我有一种直觉,我的班级结构需要完全改变,但这似乎是最合理的解决方案:如果我在谷歌提供的 2 个邮政编码之间有距离,我使用它,如果它不可用,我下台到网格参考。

任何想法都受到高度赞赏!

4

0 回答 0