c# - 可选参数odata函数c#

标签 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;

但它什么也没做。有什么想法吗?

谢谢!

最佳答案

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

startDate=null,endDate=null

关于c# - 可选参数odata函数c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37977898/

相关文章:

c# - 从不同的类访问控件

c# - 如何使用 LINQ 获取条件数据

rest - Odata(V4) 操作是否只能通过 POST 调用?

odata - OData 代理的编程生成

c# - 通过在 C# 中添加空字符串将对象转换为字符串

c# - di 使用 caSTLe windsor 的问题

c# - MAC : Mono Helloworld example

windows-phone-7 - 从 WP7 连接到 SQL Azure

c# - 使用 ASP.Net MVC 5 和 Web API 2.0 在 OData 中进行 Dictionary<string, object> 序列化

c# - 如何为 Visual Studio 2017 生成 odata v4 c# 代理客户端?