在调用给定实体的OData函数时,我似乎无法弄清楚如何在客户端上处理NULL(404 Not Found)。
实施例>调用服务,如“Context.Objects.ByKey(1).SomeFunction()。GetValue()”
我希望从服务中获得“NULL”,而是在客户端上抛出404 Not Found异常。
如果我改变服务以返回“NULL”,那么我将在服务器上收到序列化异常,如果我告诉服务器返回“OK(null)”,我也会得到一个序列化异常。
以下是控制器的服务器代码
[HttpGet]
public IHttpActionResult SomeFunction([FromODataUri] int key)
{
string something = null;
// Do some check and adjust the variable "something"
if (string.IsNullOrWhiteSpace(something))
{
return NotFound();
}
else
{
return Ok(something);
}
}
这是WebApiConfig代码
builder.EntityType<SomeObject>().Function("SomeFunction").Returns<string>();
在使用Microsoft OData客户端时,我似乎无法找到从odata服务处理空值的“正确”方法。
也许我可以连接到客户端“ReceivingResponse”事件来处理404 Not Found一些如何?任何建议......
答案 0 :(得分:0)
OData客户端的默认行为是在OData服务返回404 File Not Found时抛出异常。
为了解决这个问题,OData Client生成的代码中有一个名为&#34; IgnoreResourceNotFoundException&#34;。 将此属性设置为true,并且不抛出异常。