OData
Create and consume RESTful APIs in a simple and standard way
Latest posts
[Discussion] Future Direction of WCF Data Services
WCF Data Services Microsoft initially released WCF Data Services as an easy way to implement an OData service over queryable data sources. This made it very easy to expose a model backed by the Entity Framework as an OData Service, and included a data provider model for plugging in other types of queryable data sources. WCF Data Services abstracted away all of the details of HTTP, OData, and the various payload formats, and the data provider was responsible for executing the underlying queries and returning the raw results to be serialized in the appropriate format. This framework worked well for exposing a ...
[Announcement] ODataLib 6.1.0 release
Hi all, As our commitment in rolling out new functionality in the OData V4 protocol continuously, we are excited to announce that OData Core Libraries 6.1 has been released to NuGet. This release contains four packages, Core, EDM, Spatial and the .Net client. Call to Action If your team has an existing OData service or is considering adding an OData service, now is an excellent time to engage with us. In addition to building OData stacks, part of our charter is to help Microsoft align behind the OData protocol. If you need input on whether OData can do what your service needs to do, or input on wh...
[Announcement] OData core libraries now support OData v4
Hi all, We are tremendously excited to announce that we have released version 6.0.0 of the OData core libraries to NuGet on Jan 27th. This release is particularly noteworthy as it is the first production-ready releasewith support for OData v4, the newest version of the OData protocol. We had two primary goals for this release: We have achieved both of these goals and are now well positioned to continue adding support for v4 features. Stack Prioritization & Strategy Adjustment As you are probably aware, our team aligns with many teams inside and outside of Microsoft who are building OData services. T...
[Announcement] The ASP.NET Web API 2.2 for OData release and the OData Client Code Generator release
We are very excited to announce the availability of nightly builds on MyGet for ASP.NET Web API 2.2 for OData v4.0 along with OData Client Code Generator for writing OData v4 clients. The Web API 2.2 release is particularly noteworthy as it is the first Web API release with support for OData v4 with selected highly demanded features. For a summary of what’s new in OData v4.0, please visit What’s New in OData v4. What’s New in ASP.NET Web API 2.2 for OData v4.0 New features Where to get it It is now available at ASP.NET Web API 2.2 for OData v4.0 on MyGet. We recommend ve...
[Tutorial & Sample] Use Enumeration types in OData
Enumeration is a very common data type in various data models. Enumeration types are useful means to represent data that needs to support certain programmatic options (such as the ability to detect one or more options are selected). OData v4 now supports Enumeration types, along with Primitive types, Complex types, and Entity types. And we expect there will be heavy usage of them. Let’s look at an example. Suppose we have an entity type called Product, and we want to have a property member that stores the color of the product. We could use a string type property, but an enumeration type property would look bet...
[Tutorial & Sample] Using Parameter Alias to simplify the OData URL
Are you suffering from typing complex parameter values in URL? Or even make it worse you need to type it more than once? To solve this problem, now Microsoft.OData.Core.dll 6.0 supports parameter alias in request URL, such as: ~/People?$filter=LastName eq @name and contains(Description, @name)&@name=’Bob’ It is implemented by introducing a new class: ParameterAliasNode and its base class is SingleValueNode. The alias (@name) is parsed into a ParameterAliasNode. Note: This blog assumes that you have writing ODL server side code experience. But how to leverage this feature? Just 3 steps: 1. Creat...
[Tutorial & Sample] Containment is Coming with OData V4
Before OData V4, every entity set must be accessed from top-level even it is in a containment relationship with other set. For example, assume a schema where Order Lines (Type: “OrderLine”, EntitySet: “OrderLines”) live within Orders (Type: “Order”, EntitySet: “Orders”). Then, Orders have an “id” member that is the key, and that OrderLines has id and OrderId (container id) members that form a composite key. There are two issues in this kind of model. To solve the above problems, containment navigation property (“containment” in short) is introduced in OData V4 (containment spec). Using containment, y...
[Tutorial & Sample] How to use OData Client Code Generator to generate client-side proxy class
Edited on July 09, 2014 by updating “Add OData Client Proxy File” for V2.0.0 and adding "Appendix" part. Please refer to "OData Client Code Generator 2.0.0 release" for V2.0.0 release notes Edited on Apr 29, 2014 by adding "Upgrade the Project Dependencies to the Most Recent Version" part. In this tutorial, you will generate an OData client proxy class for an OData V4 service by “OData Client Code Generator”. Install OData Client Code Generator Start Visual Studio, from the TOOLS menu, select Extensions and Updates In the left panel, expand Online -> Visual Studio Gallery. Search “OData Client Code ...
[Tutorial & Sample] Use Singleton to define your special entity
Ever had a special entity where there can be only one of its kind, but bothered by having to define a one-element entity set for it? Ever wanted to request a special entity but bothered by needing to find out its key first? Use a singleton! Singleton is newly introduced in OData V4, to allow developers name such special entity, and it can be addressed directly by its name from the service root. Let's think about a universal scenario which can benefit from singleton: We want to have a model to present the staff information of a company. So first, we define an EntityType named EmployeeType to represent the...