Могу ли я использовать ORM (как Subsonic) для работы с API? - PullRequest
0 голосов
/ 07 мая 2010

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

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

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

Спасибо!

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Уверен, что это невозможно.Или, по крайней мере, это не намерение ORM.

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

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

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

1 голос
/ 07 мая 2010

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

0 голосов
/ 27 мая 2010

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

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

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

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

  • создать экземпляр вашего класса
  • для параметра "Test" он пытается загрузить свойство "Test экземпляра класса
  • Устанавливает значение
...