Могу ли я использовать ORM (как Subsonic) для работы с API?

Я новичок в ORM, и у меня есть новый проект, который я буду делать в .Net MVC.

На уровне модели я создам свои классы: Videos и буду работать с API в качестве уровня данных (API BrightCove и YouTube).

Итак, у меня нет реляционной базы данных в качестве уровня данных. Можно ли работать с ORM (как с Subsonic)?

Спасибо!


person Gabrielizalo    schedule 07.05.2010    source источник
comment
ORM = объект реляционный сопоставитель   -  person Simon Fox    schedule 07.05.2010
comment
Да, я знаю, но мне нужна система, которая переводит данные из Api в мои Objets: Mapper.   -  person Gabrielizalo    schedule 07.05.2010
comment
Вы можете посмотреть AutoMapper (automapper.codeplex.com). Я не даю никаких гарантий, что он будет делать то, что вы хотите :)   -  person Simon Fox    schedule 07.05.2010


Ответы (3)


Совершенно уверен, что это невыполнимо. Или, по крайней мере, это не цель ORM.

Если вы имеете дело с api, вы бы позвонили и вернули результат, да? или вы позвоните, а затем получите значения из свойств?

В любом случае ORm действительно не из чего отображать. Он не знает, как вызывать api и т. Д. Им даются объекты, которые они могут интерпретировать с помощью отражения (я полагаю) и т. Д.

Поэтому я думаю, вам нужно создать объект самостоятельно из API, и в этом случае вам, вероятно, не понадобится ORm в этом случае. Если вы не создаете свою модель API на каком-либо слое, а затем используете ORM для преобразования в модель, используемую приложением. Это было бы лучшим решением, потому что, если модель API изменится, изменения в вашем коде будут минимальными.

person griegs    schedule 07.05.2010

Существует .NET API для Youtube, который предоставляет классы для видео в виде а также методы доступа к данным для получения данных с Youtube. Я думаю, если у вас нет веских причин для развертывания собственного, вы можете рассмотреть возможность использования их .NET API и прямого использования или расширения классов, которые они предоставляют. Если вы хотите абстрагироваться от доступа к данным, вы можете создать свой собственный класс Video с необходимыми вам свойствами и реализовать собственный репозиторий видео, который использует API Youtube для гидратации экземпляров вашего класса.

person KOTJMF    schedule 07.05.2010

В коде SubSonic (просто скачайте его с github) в классе SqlQuery есть изящный метод, который называется «ExcecuteTypedList ()».

Это всего лишь небольшой метод, который использует отражение для сопоставления результата DataReader с универсальным классом. Это просто, но гениально.

Вы можете посмотреть код и изменить его под свои нужды.

В основном он делает следующее, если вы вызываете ExecuteTypedList ()

  • создать экземпляр вашего класса
  • для параметра «Тест» пытается загрузить свойство «Тест экземпляра класса.
  • Устанавливает значение
person Jürgen Steinblock    schedule 27.05.2010