.Net 8. Параметр строки с нулевым значением имеет значение «Microsoft.OData.ODataNullValue» вместо нуля.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .Net 8. Параметр строки с нулевым значением имеет значение «Microsoft.OData.ODataNullValue» вместо нуля.

Сообщение Anonymous »

Недавно мы перенесли наш проект с .NET6 на .NET 8. В ходе этого процесса мы также перенесли ODATA 7 с 8

Код: Выделить всё

Microsoft.AspNetCore.OData from "7.5.12" to "8.1.0"
Я стараюсь сохранить сигнатуру API и результаты одинаковыми, чтобы избежать необходимости корректировать количество потребителей.
Конфигурация модели или определение функции:

Код: Выделить всё

`FunctionConfiguration getInstances = builder.Function("GetDeploymentInstanceForPool")

Код: Выделить всё

.Returns();

Код: Выделить всё

getInstances.Parameter("DeploymentInstanceType");

Код: Выделить всё

getInstances.Parameter("PoolId");

Код: Выделить всё

getInstances.Parameter("ParentInstanceId");`
Действие контроллера:

Код: Выделить всё

[HttpGet("odata/GetDeploymentInstanceForPool(DeploymentInstanceType={deploymentInstanceType},PoolId={poolId},ParentInstanceId={parentInstanceId})")] public async Task GetDeploymentInstanceForPool(     [FromRoute] string deploymentInstanceType,     [FromRoute] string poolId,     [FromRoute] string parentInstanceId) {
.....
До обновления odata/GetDeploymentInstanceForPool(DeploymentInstanceType='AXServiceFabricInstance',PoolId='{0}',ParentInstanceId=null) присвоит ParentInstanceId значение null
После обновления вызов API устанавливает для ParentInstanceId значение «Microsoft.OData.ODataNullValue».
Может пожалуйста, сообщите здесь, как решить эту проблему, поскольку мой вызов не работает, принимая «Microsoft.OData.ODataNullValue» вместо нулевого значения.
Пробовал
Вариант 1< /strong>

Код: Выделить всё

getInstances.Parameter("ParentInstanceId").Optional(); 
в разделе «Определение функции» без изменений
Вариант 2[/b]

Код: Выделить всё

getInstances.Parameter("ParentInstanceId").Optional().HasDefaultValue(null); 
в разделе «Определение функции» без изменений
Вариант 3

Код: Выделить всё

getInstances.Parameter("ParentInstanceId").Optional().HasDefaultValue(null).Nullable = true; 
в разделе «Определение функции» без изменений

Подробнее здесь: https://stackoverflow.com/questions/790 ... ue-instead
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»