简体   繁体   中英

Optional parameter odata function c#

I define a function for GeminiTickets like this:

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");

in GeminiTicketsController...

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

When I want to access this function with all parameters, everything is fine: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3],startDate=2016-06-10,endDate=2016-06-22)

But if I send no parameter at all of if I try to send eg only projectIds, IIS gives me a 500 Internal Error: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3])

I found that we can set a parameter to be optional:

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

But it's doing nothing. Any idea ?

Thank you!

OptionalParameter表示它可以为null,可以尝试

startDate=null,endDate=null

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM