Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
autor: Microsoft
W tym temacie opisano nowości dotyczące interfejsu API sieci Web ASP.NET OData 5.3.
- Download
- dokumentacja
- Biblioteki podstawowe OData
- Nowe funkcje
- Znane problemy i zmiany krytyczne
- Poprawki błędów
- ASP.NET Web API OData 5.3.1
Pobierz
Funkcje środowiska uruchomieniowego są wydawane jako pakiety NuGet w galerii NuGet. Możesz zainstalować lub zaktualizować wydane pakiety NuGet przy użyciu konsoli Menedżera pakietów NuGet:
Install-Package Microsoft.AspNet.OData -Version 5.3.0
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.3.0
Dokumentacja
Samouczki i inne dokumentacje dotyczące API OData w ASP.NET można znaleźć w witrynie internetowej ASP.NET.
Biblioteki podstawowe OData
W przypadku protokołu OData w wersji 4 internetowy interfejs API używa teraz biblioteki ODataLib w wersji 6.5.0
Nowe funkcje w interfejsie API sieci Web ASP.NET OData 5.3
Obsługa $levels w programie $expand
Możesz użyć opcji $levels w zapytaniach $expand. Przykład:
http://example.com/Employees?$expand=Manager($levels=2)
To zapytanie jest równoważne:
http://example.com/Employees?$expand=Manager($expand=Manager))
Obsługa otwartych typów jednostek
Typ otwarty to typ ustrukturyzowany, który zawiera właściwości dynamiczne, oprócz wszystkich właściwości zadeklarowanych w definicji typu. Typy otwarte umożliwiają dodawanie elastyczności do modeli danych. Aby uzyskać więcej informacji, zobacz xxxx.
Obsługa dynamicznych właściwości kolekcji w typach otwartych
Wcześniej właściwość dynamiczna musiała być pojedynczą wartością. W wersji 5.3 właściwości dynamiczne mogą mieć wartości kolekcji. Na przykład w następujących danych JSON właściwość Emails jest właściwością dynamiczną i jest kolekcją ciągów znaków.
{
"Id": 1,
"Name": "Ben",
"Emails@odata.type": "#Collection(Edm.String)",
"Emails": [
"a@a.com",
"b@b.com"
]
}
Obsługa dziedziczenia dla typów złożonych
Teraz typy złożone mogą dziedziczyć po typie podstawowym. Na przykład usługa OData może definiować następujące złożone typy:
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>();
}
}
Oto EDM dla tego przykładu:
<?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>
Aby uzyskać więcej informacji, zobacz Przykład dziedziczenia typu złożonego OData.
Znane problemy i zmiany powodujące niezgodność
W tej sekcji opisano znane problemy i zmiany powodujące niekompatybilność w ASP.NET Web API OData 5.3.
OData v4
Opcje zapytania
Problem: Używanie zagnieżdżonych $expand z $levels=max powoduje niepoprawną głębokość rozszerzenia.
Na przykład, biorąc pod uwagę następujące żądanie:
~/Entities(6)?$expand=P($levels=2;$expand=D($levels=max))
Jeśli wartość MaxExpansionDepth wynosi 5, to zapytanie spowodowałoby rozszerzenie do głębokości 6.
Poprawki błędów i aktualizacje funkcji pomocniczych
Ta wersja zawiera również kilka poprawek błędów i drobnych aktualizacji funkcji.
ASP.NET Web API OData 5.3.1
W tej wersji wprowadziliśmy poprawkę do niektórych wyliczeń AllowedFunctions. Ta wersja nie zawiera żadnych innych poprawek błędów ani nowych funkcji.