可选参数odata函数c#

时间:2016-06-22 20:42:24

标签: c# odata

我为这样的GeminiTickets定义了一个函数:

var geminiTickets = builder.EntitySet<GeminiTicket>("GeminiTickets");

        var geminiTicketsParam = geminiTickets.EntityType.Collection
            .Function("GetNewTickets")
            .Returns<ReportDataVM>();
        geminiTicketsParam.CollectionParameter<int>("projectIds");
        geminiTicketsParam.Parameter<DateTime?>("startDate");
        geminiTicketsParam.Parameter<DateTime?>("endDate");

在GeminiTicketsController中......

public async Task<IHttpActionResult> GetNewTickets([FromODataUri] List<int> projectIds, DateTime? startDate = null, DateTime? endDate = null) {...};

当我想使用所有参数访问此函数时,一切都很好: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3],startDate=2016-06-10,endDate=2016-06-22)

但是,如果我尝试发送例如,我根本不发送任何参数只有projectIds,IIS给了我500个内部错误: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3])

我发现我们可以将参数设置为可选:

geminiTicketsParam.Parameter<DateTime?>("startDate").OptionalParameter = true;

但它什么都不做。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

OptionalParameter表示它可以为null,您可以尝试使用

startDate=null,endDate=null