Sdílet prostřednictvím


Novinky v ASP.NET Webové rozhraní API OData 5.3

od Microsoftu

Toto téma popisuje, co je nového pro ASP.NET Web API OData 5.3.

Stáhnout

Funkce modulu runtime se vydávají jako balíčky NuGet v galerii NuGet. Vydané balíčky NuGet můžete nainstalovat nebo aktualizovat pomocí konzoly Správce balíčků NuGet:

Install-Package Microsoft.AspNet.OData -Version 5.3.0 
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.3.0

Dokumentace

Kurzy a další dokumentaci týkající se ASP.NET webového rozhraní API OData najdete na webu ASP.NET.

Základní knihovny OData

Pro OData v4 teď webové rozhraní API používá ODataLib verze 6.5.0.

Nové funkce webového rozhraní API ASP.NET OData 5.3

Podpora $levels v $expand

V $expand dotazech můžete použít možnost $levels dotazu. Příklad:

http://example.com/Employees?$expand=Manager($levels=2)

Tento dotaz odpovídá:

http://example.com/Employees?$expand=Manager($expand=Manager))

Podpora typů otevřených entit

Otevřený typ je strukturovaný typ, který kromě všech vlastností deklarovaných v definici typu obsahuje dynamické vlastnosti. Otevřené typy umožňují dodat vašim datovým modelům flexibilitu. Další informace najdete v tématu xxxx.

Podpora dynamických vlastností kolekce v otevřených typech

Dříve musela být dynamická vlastnost jedinou hodnotou. Ve 5.3 mohou dynamické vlastnosti obsahovat hodnoty kolekce. Například v následující datové části Emails JSON je vlastnost dynamická vlastnost a je kolekce typu řetězec:

{
   "Id": 1,
   "Name": "Ben",
   "Emails@odata.type": "#Collection(Edm.String)",
   "Emails": [
      "a@a.com",
      "b@b.com"
   ]
}

Podpora dědičnosti pro komplexní typy

Komplexní typy teď můžou dědit ze základního typu. Například služba OData může definovat následující komplexní 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>();
    }
}

Tady je EDM pro tento příklad:

<?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>

Další informace najdete v tématu Ukázka dědičnosti komplexních typů OData.

Známé problémy a změny způsobující chybu

Tato část popisuje známé problémy a změny způsobující chybu ve webovém rozhraní API ASP.NET OData 5.3.

OData v4

Možnosti dotazu

Problém: Použití vnořených $expand s $levels=max má za následek nesprávnou hloubku rozšíření.

Například na základě následujícího požadavku:

~/Entities(6)?$expand=P($levels=2;$expand=D($levels=max))

Pokud MaxExpansionDepth je 5, výsledkem tohoto dotazu je hloubka rozšíření 6.

Opravy chyb a Aktualizace vedlejších funkcí

Tato verze také obsahuje několik oprav chyb a dílčí aktualizace funkcí.

ASP.NET Web API OData 5.3.1

V této verzi jsme opravili chybu některých výčtů AllowedFunctions. Tato verze neobsahuje žádné další opravy chyb ani nové funkce.