Model Context Protocol (MCP) finally gives AI models a way to access the business data needed to make them really useful at work. CData MCP Servers have the depth and performance to make sure AI has access to all of the answers.
Try them now for free →Connect to Odoo Data from Blazor Apps
Build ASP.NET Core Blazor C# apps that integrate with real-time Odoo data using standard SQL.
Blazor is a framework for developing modern, client-side web UIs using .NET technology. Instead of coding in JavaScript, developers can use the familiar C# language and .NET libraries to build app UIs.
The CData ADO.NET Provider for Odoo can be used with standard ADO.NET interfaces, such as LINQ and Entity Framework, to interact with live Odoo data. Since Blazor supports .NET Core, developers can use CData ADO.NET Providers in Blazor apps. In this article, we will guide you to build a simple Blazor app that talks to Odoo using standard SQL queries.
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
Install the CData ADO.NET Provider for Odoo
CData ADO.NET Providers allow users to access Odoo just like they would access SQL Server, using simple SQL queries.
Install the Odoo ADO.NET Data Provider from the CData website or from NuGet. Search NuGet for "Odoo ADO.NET Data Provider."

Create a Odoo-Connected Blazor App
Start by creating a Blazor project that references the CData ADO.NET Provider for Odoo
- Create a Blazor project on Visual Studio.
- From the Solution Explorer, right click Dependencies, then click Add Project Reference.
- In the Reference Manager, click the Browse button, and choose the .dll file of the installed ADO.NET Provider (e.g. System.Data.CData.Odoo.dll, typically located at C:\Program Files\CData\CData ADO.NET Provider for Odoo\lib etstandard2.0).


SELECT Odoo Data from the Blazor App
- Open the Index.razor file from the Project page.
- In a OdooConnection object, set the connection string:
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.
For example: User=MyUser;Password=MyPassword;URL=http://MyOdooSite/;Database=MyDatabase;
- The code below creates a simple Blazor app for displaying Odoo data, using standard SQL to query Odoo just like SQL Server.
@page "/" @using System.Data; @using System.Data.CData.Odoo; <h1>Hello, world!</h1> Welcome to your Data app. <div class="row"> <div class="col-12"> @using (OdooConnection connection = new OdooConnection( "User=MyUser;Password=MyPassword;URL=http://MyOdooSite/;Database=MyDatabase;")) { var sql = "SELECT name, email FROM res_users"; var results = new DataTable(); OdooDataAdapter dataAdapter = new OdooDataAdapter(sql, connection); dataAdapter.Fill(results); <table class="table table-bordered"> <thead class="thead-light"> <tr> @foreach (DataColumn item in results.Rows[0].Table.Columns) { <th scope="col">@item.ColumnName</th> } </tr> </thead> <tbody> @foreach (DataRow row in results.Rows) { <tr> @foreach (var column in row.ItemArray) { <td>@column.ToString()</td> } </tr> } </tbody> </table> } </div> </div>
- Rebuild and run the project. The ADO.NET Provider renders Odoo data as an HTML table in the Blazor app.
At this point, you have a Odoo-connected Blazor app, capable of working with live Odoo data just like you would work with a SQL Server instance. Download a free, 30-day trial and start working with live Odoo data in your Blazor apps today.