我最近开始使用 C# 和 NHibernate,所以这一切对我来说都是新手。
在我正在构建的应用程序中,我需要计算英国邮政编码之间的距离。其中一种方法是使用网格参考和毕达哥拉斯距离。另一种方法是使用谷歌地图来获取距离。
我有一个Ipostcode
带有方法的接口,getDistance(IPostcode p)
并且根据实现类将与不同的表交谈。
对于网格引用,我将拥有 GridRefPostcode 对象和 DB 表:(string)postcode、(long)northing、(long)easting。
对于谷歌地图,我将谷歌地图邮政编码对象和数据库表:(字符串)邮政编码,(字符串)其他邮政编码,(双)距离。
类 Person 将有一个 field IPostcode
,然后我将根据getDistance()
两个类提供的距离计算距离。
现在的问题是:如何在 NHibernate 中映射这种类关系?我如何将接口融入映射?
人 ^ | IPostcode ( 接口 ) ^ ^ | | GridRef邮政编码谷歌地图邮政编码
甚至可能吗?我有一种直觉,我的班级结构需要完全改变,但这似乎是最合理的解决方案:如果我在谷歌提供的 2 个邮政编码之间有距离,我使用它,如果它不可用,我下台到网格参考。
任何想法都受到高度赞赏!