按照此处的声明http://blogs.msdn.com/b/odatateam/archive/2014/07/03/odatalib-6-5-0-release.aspx
修复枚举的错误 1) ODataUriParser 应支持可空枚举作为函数参数。
我从 odata 3 和 webapi 2 升级(由于删除日期时间支持而导致大量时间成本!以及升级的各种其他问题)
果然,我可以正确地将 null 传递给我的函数。但是-无论我传递什么,都会以 null 的形式到达函数!
IE
要求
http://visits.backend/odata/Test(PastState=Data.Entities.PastVisitState '完成')
WebApiConfig
var functionTest = builder.Function("Test")
.Returns<bool>();
functionTest.Parameter<PastVisitState?>("PastState");
WebApp.Controller
[HttpGet]
[ODataRoute("Test(PastState={pastState})")]
[EnableQuery]
public bool Test([FromODataUri] PastVisitState? pastState)
{
if (pastState != null)
{
return true;
}
else
{
return false;
}
}
如果它不可为空,则该值通过就好了。
NB
我刚刚将 nuget 包 odataLib 升级到 6.8.1 以确保(以前与 6.5.0 上的每个链接帖子一样)相同的行为。
我已经用可为空的 int 进行了测试,一切正常
我也尝试过 Nullable - 不高兴。
似乎是 Microsoft.OData.Core.dll 的错误?