Yang Baru di ASP.NET Web API OData 5.3
oleh Microsoft
Topik ini menjelaskan apa yang baru untuk ASP.NET Web API OData 5.3.
- Unduh
- Dokumentasi
- Pustaka OData Core
- Fitur baru
- Masalah yang Diketahui dan Perubahan yang Melanggar
- Perbaikan Bug
- ASP.NET Web API OData 5.3.1
Unduh
Fitur runtime dirilis sebagai paket NuGet di galeri NuGet. Anda dapat menginstal atau memperbarui ke paket NuGet yang dirilis dengan menggunakan NuGet Package Manager Console:
Install-Package Microsoft.AspNet.OData -Version 5.3.0
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.3.0
Dokumentasi
Anda dapat menemukan tutorial dan dokumentasi lainnya tentang ASP.NET Web API OData di situs web ASP.NET.
Pustaka OData Core
Untuk OData v4, Api Web sekarang menggunakan ODataLib versi 6.5.0
Fitur Baru di ASP.NET Web API OData 5.3
Dukungan untuk $levels di $expand
Anda bisa menggunakan opsi kueri $levels dalam kueri $expand. Contohnya:
http://example.com/Employees?$expand=Manager($levels=2)
Kueri ini setara dengan:
http://example.com/Employees?$expand=Manager($expand=Manager))
Dukungan untuk Jenis Entitas Terbuka
Jenis terbuka adalah jenis terstruktur yang berisi properti dinamis, selain properti apa pun yang dideklarasikan dalam definisi jenis. Jenis terbuka memungkinkan Anda menambahkan fleksibilitas ke model data Anda. Untuk informasi selengkapnya, lihat xxxx.
Dukungan untuk properti koleksi dinamis dalam jenis terbuka
Sebelumnya, properti dinamis harus menjadi satu nilai. Dalam 5.3, properti dinamis dapat memiliki nilai koleksi. Misalnya, dalam payload JSON berikut, Emails
properti adalah properti dinamis dan merupakan kumpulan jenis string:
{
"Id": 1,
"Name": "Ben",
"Emails@odata.type": "#Collection(Edm.String)",
"Emails": [
"a@a.com",
"b@b.com"
]
}
Dukungan untuk pewarisan untuk jenis kompleks
Sekarang jenis kompleks dapat mewarisi dari jenis dasar. Misalnya, layanan OData dapat menentukan jenis kompleks berikut:
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>();
}
}
Berikut adalah EDM untuk contoh ini:
<?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>
Untuk informasi selengkapnya, lihat Sampel Pewarisan Jenis Kompleks OData.
Masalah yang Diketahui dan Perubahan yang Melanggar
Bagian ini menjelaskan masalah yang diketahui dan melanggar perubahan di ASP.NET Web API OData 5.3.
OData v4
Opsi Kueri
Masalah: Menggunakan $expand berlapis dengan $levels=max menghasilkan kedalaman ekspansi yang salah.
Misalnya, mengingat permintaan berikut:
~/Entities(6)?$expand=P($levels=2;$expand=D($levels=max))
Jika MaxExpansionDepth
adalah 5, kueri ini akan menghasilkan kedalaman ekspansi 6.
Perbaikan Bug dan Updates Fitur Minor
Rilis ini juga mencakup beberapa perbaikan bug dan pembaruan fitur kecil.
ASP.NET Web API OData 5.3.1
Dalam rilis ini kami membuat perbaikan bug untuk beberapa enum AllowedFunctions. Rilis ini tidak memiliki perbaikan bug atau fitur baru lainnya.