Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web API OData EnableLowerCamelCase

I have a Web API 2 application using OData and I need to expose the model properties in lower camel case as they are being serialized.

There is a EnableLowerCamelCase method that appears to do this but I can't get it to be recognized by the compiler. There is even a sample on CodePlex using OData 6.5.0 that shows EnableLowerCamelCase.

ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EnableLowerCamelCase(); // <-- this won't compile

Has EnableLowerCamelCase been removed? What am I missing?

I am using the following package versions:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Antlr" version="3.5.0.2" targetFramework="net45" />
  <package id="elmah" version="1.2.2" targetFramework="net45" />
  <package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="5.2.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.OData" version="5.3.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="3.2.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.0" targetFramework="net45" />
  <package id="Microsoft.OData.Core" version="6.8.0" targetFramework="net45" />
  <package id="Microsoft.OData.Edm" version="6.8.0" targetFramework="net45" />
  <package id="Microsoft.Spatial" version="6.8.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="6.0.5" targetFramework="net45" />
</packages>
like image 240
Ben Ripley Avatar asked Dec 08 '14 19:12

Ben Ripley


1 Answers

Simply change

ODataModelBuilder builder = new ODataConventionModelBuilder();

to

ODataConventionModelBuilder builder = new ODataConventionModelBuilder();

or

var builder = new ODataConventionModelBuilder();

and it should compile. I tested it using the latest ASP.NET Web API 2.2 for OData v4.0 (v5.3.1).

like image 117
Yi Ding - MSFT Avatar answered Oct 04 '22 15:10

Yi Ding - MSFT