IRONSOFTWAREHOME
ENTWICKLER-UPDATES

OData C# (Wie es für Entwickler funktioniert)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 21. April 2026

Das Open Data Protocol (OData) vereinfacht das Erstellen und Verwenden von RESTful APIs in der Microsoft .NET-Entwicklung. Es bietet einen standardisierten Ansatz zum Abfragen und Verarbeiten von Daten durch vertraute CRUD-Operationen (Create, Read, Update, Delete). Dieser Artikel untersucht, wie das Open Data Protocol die API-Entwicklung in .NET optimiert und Beispiele präsentiert sowie seine wichtigsten Vorteile hervorhebt. Um mehr über OData zu erfahren, können Sie das OData C# GitHub Repository für den Quellcode überprüfen.

OData C# (Wie es für Entwickler funktioniert): Abbildung 1 - OData C#-Datenzugriffsprotokoll

OData folgt standardisierten Praktiken zum Erstellen von RESTful Web-APIs und verwendet URLs und HTTP-Verben wie GET und POST, um Operationen zu definieren. Es stellt Daten mithilfe eines Entity Data Model (EDM) und JSON oder AtomPub zur Nachrichtenkodierung dar. Obwohl OData die API-Entwicklung im Vergleich zu GraphQL vereinfacht, bietet es möglicherweise weniger erweiterte Funktionen.

OData C# (Wie es für Entwickler funktioniert): Abbildung 2 - OData

Vorteile der Verwendung von OData in .NET

  • Standardisierung: OData erzwingt eine konsistente Methode zur Definition von Entitätsdatenmodellen, Bearbeitung von Anfragen und Formatierung von Antworten. Dies reduziert die Komplexität der Entwicklung und vereinfacht die Integration von Clientanwendungen.
  • Erweiterte Abfragefähigkeiten: OData unterstützt eine einheitliche Methode zum Abfragen von Daten, um CRUD-Operationen auszuführen, Filterung ($filter), Sortierung (Aufsteigende/Absteigende Reihenfolge)($orderby) und Paging ($top, $skip) Funktionen zu ermöglichen. Dadurch können Clients spezifische Datensätze effizient abrufen.
  • Verbesserte Entwicklererfahrung: Die .NET-Bibliotheken für OData rationalisieren die API-Entwicklung. Entwickler können vorgefertigte Komponenten für Routing, Abfrageverarbeitung und Datenserialisierung nutzen, wodurch Code-Duplikation und Entwicklungszeit reduziert werden.
  • Interoperabilität: OData-kompatible Clients von verschiedenen Plattformen können nahtlos mit Ihrem OData-Dienst auf .NET-Basis interagieren und somit eine breitere Anwendungsintegration fördern.

Einstieg in OData in dem .NET Framework

Die .NET-Bibliotheken für OData verbessern die Entwicklererfahrung, indem sie effiziente Möglichkeiten zur Verwaltung von Datensätzen bieten. Es vereinfacht das Erstellen und Verwenden von RESTful APIs in der .NET-Entwicklung. Es bietet einen standardisierten Ansatz zur Abfrage und Verarbeitung von Daten durch vertraute CRUD-Operationen (Create, Read, Update, Delete).

Einrichten von OData in .NET-Projekten

Beginnen Sie, indem Sie Ihr neues Projekt in Visual Studio öffnen. Navigieren Sie dann zum Lösungs-Explorer, klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie "NuGet-Pakete verwalten". Suchen Sie nach Microsoft.AspNetCore.OData und installieren Sie es. Die aktuelle OData-Version ist 8.2.5.

Um OData in der NuGet-Paket-Manager-Konsole zu installieren, verwenden Sie den folgenden Befehl.

PM > Install-Package Microsoft.AspNetCore.OData

OData C# (Wie es für Entwickler funktioniert): Abbildung 3 - OData installieren

Beispiel: Erstellen eines OData-Dienstes in ASP.NET Core

Lass uns eine einfache OData-Modellklasse in einer ASP.NET Core-Anwendung erstellen. Im folgenden Code wird die unten stehende Klasse eine Liste von Diensten offenlegen, die mit der OData-Syntax abgefragt werden können.

public class Service
{
    public int Id { get; set; } 
    public string FirstName { get; set; }
    public decimal Price { get; set; }
}

Beschreibung des Codes

Die Service-Klasse repräsentiert eine grundlegende Datenstruktur in C# zur Verwaltung eines Dienstes. Sie enthält drei Eigenschaften: Id: Eine Ganzzahl als Kennung für den Dienst. FirstName: Eine Zeichenkette, die den mit dem Dienst verbundenen Vornamen darstellt. Price: Ein Dezimalwert, der den Preis des Dienstes angibt. Diese Klasse kann als Baustein für die Erstellung komplexerer dienstbezogener Funktionalitäten in der .NET-Entwicklung verwendet werden. Wir können je nach Szenario auch Sammlungen oder Navigations-Eigenschaften verwenden.

Hier erfahren Sie, wie Sie in einer ASP.NET Core-Anwendung in Visual Studio einen OData-Controller einrichten, um eine Liste von Diensten über einen standardisierten OData-Endpunkt freizugeben. Das folgende Beispiel zeigt eine grundlegende Implementierung mit einer statischen Liste von Diensten und aktiviert OData-Abfragefunktionen in der Web-API:

using DemoOData.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OData.Query;
using Microsoft.AspNetCore.OData.Routing.Controllers;

namespace DemoOData.Controllers
{
    [Route("odata/[controller]")]
    public class ServiceController : ODataController
    {
        private static readonly List<Service> Products = new List<Service>
        {
            new Service { Id = 1, FirstName = "Laptop", Price = 6239.9M },
            new Service { Id = 2, FirstName = "Smartphone", Price = 2585.9M }
        };

        [HttpGet]
        [EnableQuery]
        public IActionResult Get() => Ok(Products);
    }
}

Beschreibung des Codes

Der bereitgestellte Code definiert eine ODataController namens ServiceController in einer ASP.NET Core-Anwendung, die das Abfragen und Manipulieren von Daten mithilfe des OData-Protokolls ermöglicht. Er leitet Anfragen an odata/Service weiter und bedient eine statische Liste von Service-Objekten, darunter ein Laptop und ein Smartphone. Die Get-Methode, dekoriert mit [EnableQuery], ermöglicht es Clients, OData-Abfragen (Filtern, Sortieren, Seitierung) auf der Produkte-Liste auszuführen und die Ergebnisse als IActionResult für HTTP-GET-Anfragen zurückzugeben.

OData-Dienste im Program.cs registrieren

Um OData in eine .NET 6-Anwendung zu integrieren, müssen wir die erforderlichen OData-Pakete installieren und konfigurieren. Dies beinhaltet die Definition des OData-Modells, das Einrichten der OData-Middleware und die Konfiguration von Diensten zur Unterstützung von OData-Funktionen wie Filtern, Sortieren und Erweitern.

using DemoOData.Models;
using Microsoft.AspNetCore.OData;
using Microsoft.OData.Edm;
using Microsoft.OData.ModelBuilder;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

static IEdmModel GetEdmModel()
{
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
    builder.EntitySet<Service>("Services");
    return builder.GetEdmModel();
}

builder.Services.AddControllers()
    .AddOData(options => options
        .AddRouteComponents("odata", GetEdmModel())
        .Select()
        .Filter()
        .OrderBy()
        .SetMaxTop(20)
        .Count()
        .Expand()
    );

Beschreibung des Codes

Dieser Code konfiguriert die OData-Unterstützung in einer .NET 6-Anwendung. Zuerst werden notwendige Namespaces importiert und eine WebApplicationBuilder-Instanz erstellt. Die GetEdmModel-Methode definiert das OData-Modell unter Verwendung der ODataConventionModelBuilder, die eine Menge von Entitäten für Service-Entitäten angibt. Anschließend wird die AddOData-Methode aufgerufen, um OData-Dienste zu konfigurieren, einschließlich der Aktivierung von select, filter, order by, count, expand und der Festlegung eines maximalen top-Werts von 20 für Abfrageergebnisse. Diese Einrichtung stellt sicher, dass die Anwendung OData-Abfragen effektiv handhaben kann.

Die AddOData()-Methode nutzt die GetEdmModel()-Methode, die das zur Abfrage verwendete Datenmodell abruft und die Grundlage eines OData-Dienstes bildet. Dieser Dienst verwendet ein abstraktes Datenmodell, bekannt als Entity Data Model (EDM), um die bereitgestellten Daten zu definieren. Die ODataConventionModelBuilder-Klasse generiert ein EDM durch Standard-Namenskonventionen und minimiert den Codeaufwand. Alternativ können Entwickler die ODataModelBuilder-Klasse verwenden, um mehr Kontrolle über das EDM zu erhalten.

Screenshot des Codes

OData C# (Wie es für Entwickler funktioniert): Abbildung 4 - Code in Visual Studio

Ausführung des Dienstes

Nach Ausführung des Dienstes können Sie den Dienst mit verschiedenen OData-Abfrageoptionen abfragen, wie:

https://localhost:7131/odata/Service
Text

Ausgang des Programms

OData C# (Wie es für Entwickler funktioniert): Abbildung 5 - OData-Dienstausgabe

Einführung in IronPDF

IronPDF ist eine umfassende C#-Bibliothek, die entwickelt wurde, um die Konvertierung von Dateien in PDF, Teilung von PDF-Seiten und Entfernung von Seiten aus PDF in .NET-Anwendungen zu vereinfachen. Es bietet eine breite Palette von Funktionen, einschließlich der Möglichkeit, PDFs aus HTML, CSS, Bildern und JavaScript zu erstellen, was es Entwicklern ermöglicht, Webinhalte mühelos in hochwertige PDF-Dokumente umzuwandeln. Mit seiner intuitiven API und der leistungsstarken Rendering-Engine ermöglicht IronPDF Entwicklern, die PDF-Erzeugungsprozesse zu optimieren, so dass die Integration dynamischer Dokumenterstellungsmöglichkeiten mühelos in ihre Anwendungen erfolgen kann.

OData C# (Wie es für Entwickler funktioniert): Abbildung 6 - IronPDF

IronPDF zu einem Projekt hinzufügen

Um IronPDF in Visual Studio zu installieren, navigieren Sie zur NuGet-Paket-Manager-Konsole und verwenden Sie den folgenden Befehl.

PM > Install-Package IronPdf

PDF-Erzeugung

Um ein PDF-Dokument aus HTML-Inhalten in einer .NET-Anwendung zu generieren, können wir die ChromePdfRenderer-Klasse aus einer Bibliothek wie DinkToPdf oder ähnlich verwenden. Dieses Beispiel zeigt, wie man ein PDF mit Details eines Mitarbeiterdatensatzes erstellt.

public record Employee (string FirstName, string LastName);

class Program
{
    static void Main(string[] args)
    {
        var employee = new Employee("Iron", "Developer");
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {employee.FirstName} {employee.LastName}</p>");
        pdf.SaveAs("PersonRecord.pdf");
    }
}

Dieses Beispiel erstellt einen einfachen Mitarbeiter-Datensatz und verwendet dann IronPDF, um ein PDF-Dokument zu erstellen, das den Namen der Person anzeigt. Es zeigt, wie nahtlos C#-Records in die PDF-Erstellung in .NET-Anwendungen integriert werden können.

OData C# (Wie es für Entwickler funktioniert): Abbildung 7 - PDF-Ausgabe

Abschluss

OData vereinfacht die Entwicklung und den Konsum von RESTful APIs in .NET, indem es standardisierte Abfrage- und Bearbeitungsmöglichkeiten bereitstellt. Wir können es auch mit dem Entity Framework integrieren, wodurch die Entwicklungseffizienz erhöht wird, da der Datenzugriff und die Verwaltung vereinfacht werden. OData rationalisiert die API-Entwicklung und ermöglicht nahtlose Integration und Interoperabilität über verschiedene Plattformen hinweg mit seinen umfangreichen Abfragefunktionen und der verbesserten Entwicklererfahrung. Darüber hinaus bietet IronPDF umfassende Funktionen und Unterstützung für eine robuste PDF-Verarbeitung in .NET-Anwendungen.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.