NHibernate и интерфейсы с различными реализациями
Я недавно начал работать с C# и NHibernate, так что все это довольно новичок для меня.
В строящемся приложении мне нужно рассчитать расстояния между почтовыми индексами Великобритании. Один из подходов заключается в использовании координатной сетки и расстояния Пифагора. Другой подход - использовать Google Maps для определения расстояний.
У меня есть интерфейс Ipostcode
с методом getDistance(IPostcode p)
и в зависимости от реализаций классы будут разговаривать с разными таблицами.
Для Grid References у меня будет объект GridRefPostcode и таблица БД: (строка) почтовый индекс, (длинный) север, (длинный) восток.
Для Google Maps я буду использовать объект GoogleMapsPostcode и таблицу БД: (строка) почтовый индекс, (строка)otherPostcode, (двойное) расстояние.
Класс Person будет иметь поле IPostcode
, а затем я буду рассчитывать расстояния на основе getDistance()
обеспечивается обоими классами.
Теперь вопрос: как отобразить эти классовые отношения в NHibernate? Как я могу вписать интерфейс в отображение?
Человек ^ | IPostcode (интерфейс) ^ ^ | | GridRefPostcode GoogleMapsPostcode
Это вообще возможно? У меня есть ощущение, что моя классовая структура должна быть полностью изменена, но это, кажется, наиболее разумное решение: если у меня есть расстояние между двумя почтовыми индексами, предоставленными Google, я использую его, если он недоступен, я ухожу GridReferences.
Любые идеи высоко ценятся!