OData Connected Service
OData Connected Service bir OData servisinden, servis kodları üreten ve Visual Studio için geliştirilmiş bir uzantıdır. Servis ile iletişime geçmek için DataServiceContext türünde bir sınıf oluşturur. Bu eklentiyi Visual Studio Marketplace üzerinden veya Visual Studio içerisindeki Extensions menüsünden kurabilir ve OData yazı serisi boyunca kullanmış olduğum projeye buradan erişebilirsin.
İlgili OData servisini projemize dahil etmek için Add > Connected Service kısayolu kullanılır.
Açılan pencereden OData Connected Service seçilerek işleme devam edilir.
Devam ettiğimizde ekleyeceğimiz servisle ilgili konfigürasyon yapacağımız bir wizard penceresiyle karşılaşacağız.
Burada ekleyeceğimiz servise uygun bir isim verdikten sonra çalışmakta olan OData servisimizin $metadata bilgilerini içeren adres bilgisini Address kutucuğuna belirttikten sonra Finish diyerek servisimizi ekliyoruz. İleri konfigürasyon ayarlarında tüm servis bileşenleri yerine ekleyeceğimiz varlıkları (entity), function ve action‘ları da seçebiliyoruz.
Artık servisimizi kullanmaya başlayabiliriz. Oluşturmuş olduğumuz Console uygulaması içerisinde servisimizden veri çekmeye başlayabiliriz.
static void Main(string[] args)
{
var serviceRoot = "https://localhost:44357/odata";
var context = new Container(new Uri(serviceRoot));
var vehicles = context.Vehicles.ExecuteAsync().Result;
foreach (var vehicle in vehicles)
{
Console.WriteLine($"{vehicle.Id} - {vehicle.Model}");
}
}
Uygulamayı çalıştırdığımızda konsola verilerin basıldığını göreceğiz. Örneklerimizi query options kullanarak daha da çeşitlendirelim.
var expandedVehicles = context.Vehicles.Expand(e => e.Manufacturer).ExecuteAsync().Result;
foreach (var vehicle in expandedVehicles)
{
Console.WriteLine($"{vehicle.Id} - {vehicle.Manufacturer.Name} {vehicle.Model}");
}