Использование служб данных WCF (OData) из .NET с нетипизированными объектами

У меня есть требование к веб-приложению ASP.NET для отправки потенциальных клиентов в систему crm через OData.

Единственным API, использующим OData в .Net, помимо использования уровня HTTP, по-видимому, является класс DataServiceContext и вызов его общего метода CreateQuery<>, например. CreateQuery<Lead>("LeadSet"); однако для этого в моем коде должны быть строго типизированные классы, соответствующие объектам OData.

Моя проблема с этим подходом заключается в том, что по разным причинам я не хочу использовать статическую типизацию.

Есть ли способ использовать DataServiceContext с нетипизированными объектами? Или есть другая клиентская библиотека OData, о которой я не знаю?

Моя цель - написать что-то вроде этого:

var lead = new Entity("Lead");
lead["name"] = "Larry Jones";
lead["source"] = "google";
lead["email"] = "[email protected]";
context.AddObject("LeadSet", lead);
context.SaveChanges();

Возможно, с динамическим это можно сделать?


person Yona    schedule 27.07.2011    source источник


Ответы (1)


В настоящее время мы работаем над этим, так называемым ODataLib. Первая CTP является частью CTP1 WCF Data Services: http://blogs.msdn.com/b/astoriateam/archive/2011/06/30/announcing-wcf-data-services-june.-2011-ctp-for-net4-amp-sl4.aspx. Хотя эта версия может читать только JSON и только в том случае, если у вас есть метаданные, поэтому, скорее всего, она вам пока не подходит. Мы также работаем над чтением ATOM и упрощением истории метаданных. Существует также исходная версия, хотя она немного старше: http://odata.codeplex.com/releases/view/60787

person Vitek Karas MSFT    schedule 27.07.2011
comment
Изменилась ли эта ситуация? Есть ли способ использовать службы данных WCF с нетипизированными объектами? - Спасибо - person reckface; 19.09.2013
comment
ODataLib был выпущен (некоторое время назад) — например, в NuGet как Microsoft.Data.OData.dll. Он поддерживает все OData (службы данных WCF используют его для чтения и записи). - person Vitek Karas MSFT; 03.10.2013