Build MVC Applications with Connectivity to Odoo Data



This article shows how to use only the Entity Framework and the CData ADO.NET provider to access Odoo from an ASP.NET MVC application.

In this article, we will guide you through the process of utilizing wizards within Visual Studio to seamlessly integrate the CData ADO.NET Provider for Odoo into a basic MVC (Model, View, Controller) project.

About Odoo Data Integration

Accessing and integrating live data from Odoo has never been easier with CData. Customers rely on CData connectivity to:

  • Access live data from both Odoo API 8.0+ and Odoo.sh Cloud ERP.
  • Extend the native Odoo features with intelligent handling of many-to-one, one-to-many, and many-to-many data properties. CData's connectivity solutions also intelligently handle complex data properties within Odoo. In addition to columns with simple values like text and dates, there are also columns that contain multiple values on each row. The driver decodes these kinds of values differently, depending upon the type of column the value comes from:
    • Many-to-one columns are references to a single row within another model. Within CData solutions, many-to-one columns are represented as integers, whose value is the ID to which they refer in the other model.
    • Many-to-many columns are references to many rows within another model. Within CData solutions, many-to-many columns are represented as text containing a comma-separated list of integers. Each value in that list is the ID of a row that is being referenced.
    • One-to-many columns are references to many rows within another model - they are similar to many-to-many columns (comma-separated lists of integers), except that each row in the referenced model must belong to only one in the main model.
  • Use SQL stored procedures to call server-side RFCs within Odoo.

Users frequently integrate Odoo with analytics tools such as Power BI and Qlik Sense, and leverage our tools to replicate Odoo data to databases or data warehouses.


Getting Started


Create the Entity Framework Model

Follow the steps below to save connection properties and map tables to entities in the data model.

  1. Create a new MVC project in Visual Studio. In this example, the project name is MvcOdooApp.
  2. If you are using Entity Framework 6, you will need to take the preliminary step of registering the Odoo Entity Framework provider for your project. See the "LINQ and Entity Framework" chapter in the help documentation for a guide.

    Note that MVC 3 scaffolding and MVC 4 scaffolding do not support Entity Framework 6. You can use your scaffolding with Entity Framework 6 by upgrading to the latest version of MVC.

  3. To add the .edmx file from the designer, right-click your Models folder and click Add New Item. Select ADO.NET Entity Data Model, name the model, and click Add. In this example, the name of the model is OdooModel.
  4. In the Entity Data Model wizard, select the option 'EF Designer from database'. The Entity Data Model wizard is displayed.
  5. Click New Connection. Select CData Odoo Data Source in the dialog that is displayed.
  6. Specify the required connection string properties.

    To connect, set the Url to a valid Odoo site, User and Password to the connection details of the user you are connecting with, and Database to the Odoo database.

    A typical connection string is below:

    User=MyUser;Password=MyPassword;URL=http://MyOdooSite/;Database=MyDatabase;
  7. Name the connection and select whether to include sensitive information, such as connection credentials, in the connection string. For simplicity, this example saves sensitive information in Web.config. The connection settings are saved as OdooEntities.

  8. Select the tables and views you need. In this example, res_users is imported. Also, the option to pluralize object names is deselected in this example. Click Finish to create the .edmx file.
  9. Build your project to complete this step.

Scaffold the Controller and Views

Once you've established the model and completed the project build, you can employ ASP.NET Scaffolding wizards to generate both the controller and the views.

  1. In Solution Explorer, right-click the controllers folder and click Add -> Controller. Select MVC 5 Controller with views, using Entity Framework.
  2. In the Add Controller dialog that is then displayed, select the following options:

    • Model class: Select a table you imported; for example, res_users.
    • Data context class: Select your context class.
  3. Leave the default values for the other fields.

You can now access the list of res_users records at http://MySite/res_users. Next to each record are links to edit, delete, and see more information. You can also create new res_users records. With every state change the site picks up any data changes.

Ready to get started?

Download a free trial of the Odoo Data Provider to get started:

 Download Now

Learn more:

Odoo Icon Odoo ADO.NET Provider

Rapidly create and deploy powerful .NET applications that integrate with Odoo ERP data, including Sales Orders, Purchase Orders, Accounts,, and more!