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.

Любые идеи высоко ценятся!

0 ответов

Другие вопросы по тегам