Новые возможности веб-API ASP.NET OData 5.3
В этом разделе описываются новые возможности веб-API ASP.NET OData 5.3.
- Загрузить
- Документация
- Основные библиотеки OData
- Новые функции
- Известные проблемы и критические изменения
- Исправления ошибок
- веб-API ASP.NET OData 5.3.1
Скачать
Функции среды выполнения выпускаются в виде пакетов NuGet в коллекции NuGet. Вы можете установить или обновить выпущенные пакеты NuGet с помощью консоли диспетчера пакетов NuGet:
Install-Package Microsoft.AspNet.OData -Version 5.3.0
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.3.0
Документация
Руководства и другую документацию по веб-API ASP.NET OData можно найти на веб-сайте ASP.NET.
Основные библиотеки OData
Для OData версии 4 веб-API теперь использует ODataLib версии 6.5.0.
Новые возможности веб-API ASP.NET OData 5.3
Поддержка $levels в $expand
Параметр запроса $levels можно использовать в $expand запросах. Пример:
http://example.com/Employees?$expand=Manager($levels=2)
Этот запрос эквивалентен:
http://example.com/Employees?$expand=Manager($expand=Manager))
Поддержка открытых типов сущностей
Открытый тип — это структурированный тип, который содержит динамические свойства в дополнение к свойствам, объявленным в определении типа. Открытые типы позволяют обеспечить гибкость моделей данных. Дополнительные сведения см. в разделе xxxx.
Поддержка свойств динамической коллекции в открытых типах
Ранее динамическое свойство должно было быть одним значением. В версии 5.3 динамические свойства могут иметь значения коллекции. Например, в следующих полезных данных Emails
JSON свойство является динамическим свойством и имеет коллекцию строкового типа:
{
"Id": 1,
"Name": "Ben",
"Emails@odata.type": "#Collection(Edm.String)",
"Emails": [
"a@a.com",
"b@b.com"
]
}
Поддержка наследования для сложных типов
Теперь сложные типы могут наследовать от базового типа. Например, служба OData может определить следующие сложные типы:
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>();
}
}
Ниже приведен пример EDM:
<?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>
Дополнительные сведения см. в разделе Пример наследования сложных типов OData.
Известные проблемы и критические изменения
В этом разделе описываются известные проблемы и критические изменения в веб-API ASP.NET OData 5.3.
OData v4
Параметры запроса
Проблема. Использование вложенных $expand с $levels=max приводит к неправильной глубине расширения.
Например, при выполнении следующего запроса:
~/Entities(6)?$expand=P($levels=2;$expand=D($levels=max))
Если MaxExpansionDepth
значение равно 5, этот запрос приведет к глубине расширения 6.
Исправления ошибок и Обновления дополнительных функций
Этот выпуск также включает несколько исправлений ошибок и незначительных обновлений компонентов.
веб-API ASP.NET OData 5.3.1
В этом выпуске мы внесли исправление ошибки в некоторые перечисления AllowedFunctions. В этом выпуске нет других исправлений ошибок или новых функций.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по