Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Microsoft
In diesem Thema wird beschrieben, was für ASP.NET Web-API OData 5.3 neu ist.
- Download
- Dokumentation
- OData-Kernbibliotheken
- Neue Funktionen
- Bekannte Probleme und wichtige Änderungen
- Fehlerkorrekturen
- ASP.NET Web-API OData 5.3.1
Herunterladen
Die Laufzeitfeatures werden als NuGet-Pakete in der NuGet-Galerie veröffentlicht. Sie können die veröffentlichten NuGet-Pakete mithilfe der NuGet-Paket-Manager-Konsole installieren oder aktualisieren:
Install-Package Microsoft.AspNet.OData -Version 5.3.0
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.3.0
Dokumentation
Auf der ASP.NET-Website finden Sie Lernprogramme und weitere Dokumentationen zu ASP.NET Web-API-OData.
OData-Kernbibliotheken
Für OData v4 verwendet die Web-API jetzt ODataLib, Version 6.5.0
Neue Features in ASP.NET Web-API OData 5.3
Unterstützung für $levels in $expand
Sie können die Abfrageoption $levels in $expand-Abfragen verwenden. Beispiel:
http://example.com/Employees?$expand=Manager($levels=2)
Diese Abfrage entspricht:
http://example.com/Employees?$expand=Manager($expand=Manager))
Unterstützung für offene Entitätstypen
Ein offener Typ ist ein strukturierter Typ, der zusätzlich zu allen Eigenschaften, die in der Typdefinition deklariert sind, dynamische Eigenschaften enthält. Mit offenen Typen können Sie Ihren Datenmodellen Flexibilität verleihen. Weitere Informationen finden Sie unter xxxx.
Unterstützung für dynamische Sammlungseigenschaften in offenen Typen
Zuvor musste eine dynamische Eigenschaft ein einzelner Wert sein. In 5.3 können dynamische Eigenschaften Sammlungswerte aufweisen. Beispielsweise ist die Emails Eigenschaft in der folgenden JSON-Nutzlast eine dynamische Eigenschaft und eine Sammlung des Zeichenfolgentyps:
{
"Id": 1,
"Name": "Ben",
"Emails@odata.type": "#Collection(Edm.String)",
"Emails": [
"a@a.com",
"b@b.com"
]
}
Unterstützung der Vererbung für komplexe Typen
Jetzt können komplexe Typen von einem Basistyp erben. Beispielsweise könnte ein OData-Dienst die folgenden komplexen Typen definieren:
public abstract class Shape
{
public bool HasBorder { get; set; }
}
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
public class Circle : Shape
{
public Point Center { get; set; }
public int Radius { get; set; }
public override string ToString()
{
return "{" + Center.X + "," + Center.Y + "," + Radius + "}";
}
}
public class Polygon : Shape
{
public IList<Point> Vertexes { get; set; }
public Polygon()
{
Vertexes = new List<Point>();
}
}
Dies ist der EDM für dieses Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:DataServices>
<Schema Namespace="ODataComplexTypeInheritanceSample" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<ComplexType Name="Shape" Abstract="true">
<Property Name="HasBorder" Type="Edm.Boolean" Nullable="false" />
</ComplexType>
<ComplexType Name="Polygon" BaseType="ODataComplexTypeInheritanceSample.Shape">
<Property Name="Vertexes" Type="Collection(ODataComplexTypeInheritanceSample.Point)" />
</ComplexType>
<ComplexType Name="Point">
<Property Name="X" Type="Edm.Int32" Nullable="false" />
<Property Name="Y" Type="Edm.Int32" Nullable="false" />
</ComplexType>
<ComplexType Name="Circle" BaseType="ODataComplexTypeInheritanceSample.Shape">
<Property Name="Center" Type="ODataComplexTypeInheritanceSample.Point" />
<Property Name="Radius" Type="Edm.Int32" Nullable="false" />
</ComplexType>
<EntityContainer Name="Container">
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
Weitere Informationen finden Sie unter OData Complex Type Vererbungsbeispiel.
Bekannte Probleme und wichtige Änderungen
In diesem Abschnitt werden bekannte Probleme und wichtige Änderungen in der ASP.NET Web-API OData 5.3 beschrieben.
OData v4
Abfrageoptionen
Problem: Die Verwendung geschachtelter $expand mit $levels=max führt zu einer falschen Erweiterungstiefe.
Beispiel: Bei der folgenden Anforderung:
~/Entities(6)?$expand=P($levels=2;$expand=D($levels=max))
Wenn MaxExpansionDepth 5 ist, würde diese Abfrage zu einer Erweiterungstiefe von 6 führen.
Fehlerbehebungen und Kleinere Funktionsupdates
Diese Version enthält auch mehrere Fehlerbehebungen und kleinere Funktionsupdates.
ASP.NET Web-API OData 5.3.1
In dieser Version haben wir eine Fehlerbehebung für einige der AllowedFunctions-Enums durchgeführt. Diese Version verfügt nicht über andere Fehlerkorrekturen oder neue Features.