我为 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;
但它什么也没做。有什么想法吗?
谢谢!
最佳答案
OptionalParameter表示可以为null,你可以尝试使用
startDate=null,endDate=null
关于c# - 可选参数odata函数c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37977898/