diff --git a/blazor/datagrid/connecting-to-database/mysql-server.md b/blazor/datagrid/connecting-to-database/mysql-server.md
index fcd1125fea..1171ffaad6 100644
--- a/blazor/datagrid/connecting-to-database/mysql-server.md
+++ b/blazor/datagrid/connecting-to-database/mysql-server.md
@@ -1,1245 +1,1000 @@
---
layout: post
-title: MySQL Server Data Binding in Blazor DataGrid Component | Syncfusion
-description: Learn about consuming data from MySQL Server and binding it to Syncfusion Component, and performing CRUD operations.
+title: MySQL Server Data Binding in Blazor DataGrid using Entity Framework | Syncfusion
+description: Learn about connecting MySQL Server with Entity Framework Core and binding data to Syncfusion Blazor DataGrid with complete CRUD operations.
platform: Blazor
control: DataGrid
documentation: ug
---
-# Connecting MySQL Server data in to Blazor DataGrid Component
+# Connecting MySQL Server data to Blazor DataGrid
+
+[Syncfusion® Blazor DataGrid](https://www.syncfusion.com/blazor-components/blazor-datagrid) supports binding data from a MySQL Server database using Entity Framework Core (EF Core). This modern approach provides a more maintainable and type-safe alternative to raw SQL queries.
+
+Entity Framework Core is an Object-Relational Mapper (ORM) that simplifies database operations by:
+- Automatic SQL Generation: EF Core generates optimized SQL queries automatically.
+- Type Safety: Work with strongly-typed objects instead of raw SQL strings.
+- Built-in Protections: Automatic parameterization prevents SQL injection attacks.
+- Migration Support: Manage database schema changes version-by-version.
+- LINQ Queries: Use familiar LINQ syntax instead of SQL strings.
+
+## Prerequisites
+
+Ensure the following software and packages are installed before proceeding:
+
+| Software/Package | Version | Purpose |
+|-----------------|---------|---------|
+| Visual Studio 2022 | 17.0 or later | Development IDE with Blazor workload |
+| .NET SDK | net8.0 or compatible | Runtime and build tools |
+| MySQL Server| 8.0.41 or later | Database server |
+| Syncfusion.Blazor | 28.1.33 or later | DataGrid and UI components |
+| Microsoft.EntityFrameworkCore | 9.0.0 or later | Defining DbContext and running LINQ queries |
+| Pomelo.EntityFrameworkCore.MySql | 9.0.0 or later | MySQL EF Core provider |
+
+## MySQL server environment
+
+This project uses a MySQL database with Entity Framework Core (Pomelo) to store and manage payment transaction records and to support server-side CRUD, searching, filtering, sorting, grouping, and paging for the transactions table.
+
+### Step 1: Create database and table in MySQL Server
+
+Create a MySQL database named **transactiondb** and define a **transactions** table schema to store payment records. After that, insert a few sample records into the transactions table. Run the script below in MySQL Workbench.
+
+```sql
+-- Create Database
+CREATE DATABASE IF NOT EXISTS transactiondb;
+USE transactiondb;
+
+-- Create Transaction Table
+CREATE TABLE IF NOT EXISTS transactions (
+Id INT AUTO_INCREMENT PRIMARY KEY,
+TransactionId VARCHAR(50) NOT NULL UNIQUE,
+CustomerId INT NOT NULL,
+OrderId INT NULL,
+InvoiceNumber VARCHAR(50) NULL,
+Description VARCHAR(500) NULL,
+Amount DECIMAL(15, 2) NOT NULL,
+CurrencyCode VARCHAR(10) NULL,
+TransactionType VARCHAR(50) NULL,
+PaymentGateway VARCHAR(100) NULL,
+CreatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+CompletedAt DATETIME NULL,
+Status VARCHAR(50) NULL);
+
+-- Insert Sample Data (Optional)
+INSERT INTO transactions (TransactionId, CustomerId, OrderId, InvoiceNumber, Description, Amount, CurrencyCode, TransactionType, PaymentGateway, CreatedAt, CompletedAt, Status) VALUES
+('TXN260113001', 1001, 50001, 'INV-2026-001', 'Samsung S25 Ultra', 153399.00, 'INR', 'SALE', 'Razorpay', '2026-01-13 10:15:30', '2026-01-13 10:16:55', 'SUCCESS'),
+('TXN260113002', 1002, 50002, 'INV-2026-002', 'MacBook Pro M4', 224199.00, 'INR', 'SALE', 'Stripe', '2026-01-13 11:20:10', '2026-01-13 11:21:40', 'SUCCESS');
+```
+Upon executing the script, the transaction records will be stored in the transactions table within the transactiondb database. The database is now populated with records and ready for further use.
+
+### Step 2: Install required NuGet packages
-The Syncfusion® Blazor DataGrid component supports binding data from a MySQL Server database using multiple approaches. Common methods include:
+Open Visual Studio, navigate to the **Package Manager Console**, and install the necessary packages.
-- Using the [DataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_DataSource) property for local binding.
-- Implementing a [CustomAdaptor](https://blazor.syncfusion.com/documentation/datagrid/connecting-to-adaptors/custom-adaptor) for custom logic.
-- Configuring remote data binding through adaptors such as [UrlAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#url-adaptor).
+```powershell
+Install-Package Microsoft.EntityFrameworkCore -Version 9.0.0 ;
+Install-Package Microsoft.EntityFrameworkCore.Tools -Version 9.0.0 ;
+Install-Package Pomelo.EntityFrameworkCore.MySql -Version 9.0.0
+```
+Alternatively, use NuGet Package Manager UI:
-**Using UrlAdaptor**
+1. Open **Visual Studio 2022 → Tools → NuGet Package Manager → Manage NuGet Packages for Solution**
+2. Search for and install **Microsoft.EntityFrameworkCore** (version 9.0.0 or later)
+3. Search for and install **Microsoft.EntityFrameworkCore.Tools**(version 9.0.0 or later)
+4. Search for and install **Pomelo.EntityFrameworkCore.MySql** (version 9.0.0 or later)
-The [UrlAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#url-adaptor) enables communication between the DataGrid and a remote API service connected to **MySQL** Server. This approach is suitable when the API implements custom logic for data operations and returns results in the **result** and **count** format.
+The required packages are installed for the server setup.
-**Using CustomAdaptor**
+### Step 3: Create the data model
-The [CustomAdaptor](https://blazor.syncfusion.com/documentation/datagrid/connecting-to-adaptors/custom-adaptor) provides full control over data operations and CRUD functionality. It allows implementing custom logic for **searching**, **filtering**, **sorting**, **paging**, and **grouping** directly in the server-side code.
+Create a new **Data** folder in the Blazor application and add a new **Transaction.cs** file. Then define a model class named "TransactionModel" with appropriate properties and data annotations that represents the database entity.
-## Binding data from MySQL Server using an API service
+```csharp
+using System.ComponentModel.DataAnnotations;
-This section describes step by step process how to retrieve data from a MySQL Server using an API service and bind it to the Blazor DataGrid component.
+namespace Transaction.Data
+{
+ public class TransactionModel
+ {
+ [Key]
+ public int Id { get; set; }
+
+ public string? TransactionId { get; set; }
+ public int? CustomerId { get; set; }
+ public int? OrderId { get; set; }
+ public string? InvoiceNumber { get; set; }
+ public string? Description { get; set; }
+ public decimal Amount { get; set; }
+ public string? CurrencyCode { get; set; }
+ public string? TransactionType { get; set; }
+ public string? PaymentGateway { get; set; }
+ public DateTime? CreatedAt { get; set; }
+ public DateTime? CompletedAt { get; set; }
+ public string? Status { get; set; }
+ }
+}
+```
+Model class for the transactions table has been created.
-### Creating an API service
+### Step 4: Configure the DbContext
-1. **Create an ASP.NET Core Web API Project**
+The `DbContext` in Entity Framework Core manages database connections and translates application-level operations into MySQL commands. To implement this, create the **Data/TransactionDbContext.cs** file and define the "TransactionDbContext" class, which contains the entity configurations required for the MySQL database.
-In Visual Studio, create a new **ASP.NET Core Web API** project named **MyWebService**.
+```csharp
+using Microsoft.EntityFrameworkCore;
-Refer to [Microsoft documentation](https://learn.microsoft.com/en-us/visualstudio/get-started/csharp/tutorial-aspnet-core?view=vs-2022) for detailed steps.
+namespace Transaction.Data
+{
+ ///
+ /// DbContext for Transaction entity
+ /// Manages database connections and entity configurations
+ ///
+ public class TransactionDbContext : DbContext
+ {
+ public TransactionDbContext(DbContextOptions options)
+ : base(options)
+ {
+ }
-2. **Install SQL Client Package**
+ ///
+ /// DbSet for Transaction entities
+ ///
+ public DbSet Transactions => Set();
-Add the [MySQL.Data](https://www.nuget.org/packages/MySql.Data) NuGet package to the project using NuGet Package Manager (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*).
+ ///
+ /// Configures the entity mappings and constraints
+ ///
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ base.OnModelCreating(modelBuilder);
-3. **Add API Controller**
+ // Configure Transaction entity
+ modelBuilder.Entity(entity =>
+ {
+ // Primary Key
+ entity.HasKey(e => e.Id);
-Create a controller named **GridController.cs** under the Controllers folder.
+ // Auto-increment for Primary Key
+ entity.Property(e => e.Id)
+ .ValueGeneratedOnAdd();
-4. **Fetch Data from SQL Server**
+ // Column configurations
+ entity.Property(e => e.TransactionId)
+ .HasMaxLength(50)
+ .IsRequired(true);
-Use **SqlConnection** and **SqlDataAdapter** to retrieve data and convert it into a collection of Order objects:
+ entity.Property(e => e.InvoiceNumber)
+ .HasMaxLength(100)
+ .IsRequired(false);
-{% tabs %}
-{% highlight razor tabtitle="GridController.cs" %}
-using Microsoft.AspNetCore.Mvc;
-using MySql.Data.MySqlClient;
-using System.Data;
-using Syncfusion.Blazor;
-using Syncfusion.Blazor.Data;
-using System.ComponentModel.DataAnnotations;
-using Newtonsoft.Json;
+ entity.Property(e => e.Description)
+ .HasMaxLength(500)
+ .IsRequired(false);
-namespace MyWebService.Controllers
+ entity.Property(e => e.CurrencyCode)
+ .HasMaxLength(3)
+ .HasDefaultValue("INR");
+
+ entity.Property(e => e.TransactionType)
+ .HasMaxLength(50)
+ .IsRequired(false);
+
+ entity.Property(e => e.PaymentGateway)
+ .HasMaxLength(50)
+ .IsRequired(false);
+
+ entity.Property(e => e.Status)
+ .HasMaxLength(50)
+ .IsRequired(false);
+
+ entity.Property(e => e.Amount)
+ .HasPrecision(10, 2);
+
+ entity.Property(e => e.CustomerId)
+ .IsRequired(false);
+
+ entity.Property(e => e.OrderId)
+ .IsRequired(false);
+
+ entity.Property(e => e.CreatedAt)
+ .HasColumnType("datetime")
+ .IsRequired(false);
+
+ entity.Property(e => e.CompletedAt)
+ .HasColumnType("datetime")
+ .IsRequired(false);
+
+ entity.ToTable("transactions");
+ });
+ }
+ }
+}
+```
+
+### Step 5: Configure the connection string
+
+The connection string specifies the information that connects the database like MySQL server location, credentials, and database name in the runtime.
+Update **appsettings.json** file with MySQL connection string:
+
+```json
{
- [ApiController]
- public class GridController : ControllerBase
+ "ConnectionStrings": {
+ "DefaultConnection": "Server=localhost;Port=3306;Database=transactiondb;Uid=root;Pwd=Amrish_arjun11;SslMode=None;ConvertZeroDateTime=false;"
+ },
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
+```
+
+**Connection String Components:**
+- Server: MySQL server address (localhost for local development)
+- Port: MySQL port (default is 3306)
+- Database: Database name (transactiondb)
+- User: MySQL username (root)
+- Password: MySQL password
+
+Now data base connection has been established.
+
+### Step 6: Create the repository pattern class
+
+Create a new file named repository class **TransactionRepository.cs** in the **Data** folder and implement a repository class called `TransactionRepository` to handle all data operations using Entity Framework Core.
+
+```csharp
+using Microsoft.EntityFrameworkCore;
+
+namespace Transaction.Data
+{
+ ///
+ /// Repository pattern implementation for Transaction entity using Entity Framework Core
+ /// Handles all CRUD operations and business logic for transactions
+ ///
+ public class TransactionRepository
{
- public static List Orders { get; set; }
+ private readonly TransactionDbContext _context;
- public class Order
+ public TransactionRepository(TransactionDbContext context)
{
- [Key]
- public int? OrderID { get; set; }
- public string? CustomerName { get; set; }
- public int? EmployeeID { get; set; }
- public decimal? Freight { get; set; }
- public string? ShipCity { get; set; }
+ _context = context;
}
- [Route("api/[controller]")]
- public List GetOrderData()
+ ///
+ /// Retrieves all transactions from the database ordered by ID descending
+ ///
+ /// List of all transactions
+ public async Task> GetTransactionsAsync()
{
- //TODO: Enter the connectionstring of database
- string ConnectionString = @"";
- string QueryStr = "SELECT * FROM orders ORDER BY OrderID";
- MySqlConnection sqlConnection = new(ConnectionString);
- sqlConnection.Open();
- //Initialize the MySqlCommand
- MySqlCommand SqlCommand = new(QueryStr, sqlConnection);
- //Initialize the MySqlDataAdapter
- MySqlDataAdapter DataAdapter = new(SqlCommand);
- DataTable DataTable = new();
- // Using MySqlDataAdapter, process the query string and fill the data into the dataset
- DataAdapter.Fill(DataTable);
- sqlConnection.Close();
- //Cast the data fetched from MySqlDataAdapter to List
- var DataSource = (from DataRow Data in DataTable.Rows
- select new Order()
- {
- OrderID = Convert.ToInt32(Data["OrderID"]),
- CustomerName = Data["CustomerName"].ToString(),
- EmployeeID = Convert.ToInt32(Data["EmployeeID"]),
- ShipCity = Data["ShipCity"].ToString(),
- Freight = Convert.ToDecimal(Data["Freight"])
- }).ToList();
- return DataSource;
+ return await _context.Transactions
+ .OrderByDescending(t => t.Id)
+ .ToListAsync();
}
}
}
-{% endhighlight %}
-{% endtabs %}
-
-5. **Run and test the application**
-
-Start the API and access **https://localhost:xxxx/api/Grid** to view the data.
-
-
-
-### Connecting Blazor DataGrid to an API service
+```
-This section explains how to retrieve data from a **MySQL** Server database using `UrlAdaptor` and bind it to the Syncfusion® Blazor DataGrid component.
+### Step 7: Register DbContext
-**Prerequisites**
+Register the TransactionDbContext to manage database connections and provide data access throughout the project. Configure the Entity Framework Core in **Program.cs** file:
-* [System requirements for Blazor components](https://blazor.syncfusion.com/documentation/system-requirements)
+```csharp
+using Microsoft.EntityFrameworkCore;
-1. **Create a Blazor Web App**
+var builder = WebApplication.CreateBuilder(args);
-Create a **Blazor Web App** using Visual Studio 2022. Use [Microsoft Templates](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) or the Syncfusion® Blazor Extension.
+var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
-> Configure the [Interactive render mode](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-9.0#render-modes) and [Interactivity location](https://learn.microsoft.com/en-us/aspnet/core/blazor/tooling?view=aspnetcore-9.0&pivots=vs) during project creation.
+builder.Services.AddDbContext(options =>
+{
+ options.UseMySql(
+ connectionString,
+ ServerVersion.AutoDetect(connectionString)
+ );
+});
-2. **Install Syncfusion Packages**
+builder.Services.AddScoped();
+```
+Now Services registration has been completed for data access.
-* Open the NuGet Package Manager in Visual Studio (*Tools → NuGet Package Manager → Manage NuGet Packages for Solution*). Search and install the following packages:
+## Integrating Syncfusion Blazor DataGrid
- - [Syncfusion.Blazor.Grid](https://www.nuget.org/packages/Syncfusion.Blazor.Grid/)
- - [Syncfusion.Blazor.Themes](https://www.nuget.org/packages/Syncfusion.Blazor.Themes/)
+### Step 1: Install required NuGet packages and register Syncfusion services
-* Alternatively, use the Package Manager Console:
+open Visual Studio, navigate to the **Package Manager Console**, and install the necessary packages.
```powershell
-Install-Package Syncfusion.Blazor.Grid -Version {{ site.releaseversion }}
-Install-Package Syncfusion.Blazor.Themes -Version {{ site.releaseversion }}
+Install-Package Syncfusion.Blazor -Version 28.1.33
```
+Registers the Syncfusion component services required by the DataGrid at runtime and exposes grid APIs via dependency injection.
+
+Configure Syncfusion services in **Program.cs**:
-> When using **WebAssembly** or **Auto** render modes in a Blazor Web App, install Syncfusion® Blazor component NuGet packages within the client project.
+```csharp
+using Syncfusion.Blazor;
-> Syncfusion® Blazor components are available on [nuget.org](https://www.nuget.org/packages?q=syncfusion.blazor). Refer to the [NuGet packages](https://blazor.syncfusion.com/documentation/nuget-packages) topic for a complete list of available packages.
+var builder = WebApplication.CreateBuilder(args);
-3. **Register Syncfusion Blazor service**
+// Register Syncfusion Blazor services
+builder.Services.AddSyncfusionBlazor();
+```
-- Add the required namespaces in **~/_Imports.razor**:
+**Import namespaces:**
-```cshtml
+Add required namespaces in **Components/_Imports.razor**:
+
+```csharp
@using Syncfusion.Blazor
@using Syncfusion.Blazor.Grids
+@using Syncfusion.Blazor.Data
```
-- For apps using **WebAssembly** or **Auto** (Server and WebAssembly) render modes, register the service in both **~/Program.cs** files.
+**Add stylesheet and script resources:**
-```cshtml
-using Syncfusion.Blazor;
-
-builder.Services.AddSyncfusionBlazor();
+Add stylesheet and script resources in **Components/App.razor**
+
+```html
+
+
+
+
```
-4. **Add stylesheet and script resources**
+**Add Syncfusion Blazor DataGrid component**
-Access the theme stylesheet and script from NuGet using [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets). Include the stylesheet reference in the section and the script reference at the end of the in **~/Components/App.razor**:
+Create new **Home.razor** file and add the Syncfusion® Blazor DataGrid component. The DataGrid automatically generates columns when no explicit column definitions are provided. For greater control over column behavior and appearance, use [GridColumn](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html) to specify each column and configure properties such as [Field](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_Field), [HeaderText](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_HeaderText) and [Width](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_Width). This approach provides full control over column behavior and appearance.
```html
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
```
-> * Refer to [Blazor Themes](https://blazor.syncfusion.com/documentation/appearance/themes) for additional methods such as [Static Web Assets](https://blazor.syncfusion.com/documentation/appearance/themes#static-web-assets), [CDN](https://blazor.syncfusion.com/documentation/appearance/themes#cdn-reference), and [CRG](https://blazor.syncfusion.com/documentation/common/custom-resource-generator).
-> * Set the render mode to **InteractiveServer** or **InteractiveAuto** in the Blazor Web App configuration.
+> * Set [IsPrimaryKey](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_IsPrimaryKey) to **true** for a column that contains unique values.
+> * If the database includes an **auto-generated column**, set [IsIdentity](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_IsIdentity) for that column to disable editing during **add** or **update** operations.
-5. **Configure DataGrid with UrlAdaptor**
+Service registration and namespace imports have been completed. Continue with configuring DataGrid–SQL Server integration using the CustomAdaptor
-The [SfDataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) component supports multiple adaptors for remote data binding. For API services, set the [Adaptor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Adaptors.html) property to [Adaptors.UrlAdaptor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Adaptors.html#Syncfusion_Blazor_Adaptors_UrlAdaptor) and specify the service endpoint in the [Url](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Url) property.
+### Step 2: Bind data from MySQL Server using CustomAdaptor
-{% tabs %}
-{% highlight razor tabtitle="Index.razor" %}
-@using Syncfusion.Blazor.Grids
-@using Syncfusion.Blazor.Data
-@using Syncfusion.Blazor
+The Syncfusion® Blazor DataGrid can bind data from a **MySQL Server** database using [DataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) and set the [Adaptor](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Adaptors.html) property to [CustomAdaptor](https://blazor.syncfusion.com/documentation/datagrid/connecting-to-adaptors/custom-adaptor) for scenarios that require full control over data operations.
+The CustomAdaptor serves as the bridge between DataGrid UI interactions and MySQL Server database operations. When users interact with the grid (search, filter, sort, page), the adaptor intercepts these requests and executes corresponding MySQL operations.
-
-
-
-
-
-
-
-
- @{
- var aggregate = (context as AggregateTemplateContext);
-
-
Sum: @aggregate.Sum
-
- }
-
-
-
-
-
-
-
-
- @{
- var aggregate = (context as AggregateTemplateContext);
-
-
Average: @aggregate.Average
-
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
+### Implement CustomAdaptor
-@code {
- SfGrid Grid { get; set; }
- public List Orders { get; set; }
- public class Order
- {
- public int? OrderID { get; set; }
- public string CustomerName { get; set; }
- public int EmployeeID { get; set; }
- public decimal Freight { get; set; }
- public string ShipCity { get; set; }
+Create a CustomAdaptor class in **Components/Pages/Home.razor** that bridges DataGrid actions with MySQL Server operations:
+
+```csharp
+public class CustomAdaptor : DataAdaptor
+{
+ public static TransactionRepository? _transactionService { get; set; }
+ public TransactionRepository? TransactionService
+ {
+ get => _transactionService;
+ set => _transactionService = value;
}
-}
-{% endhighlight %}
-{% highlight c# tabtitle="GridController.cs" %}
-[ApiController]
-public class GridController : ControllerBase
-{
+
///
- /// Returns the data collection as result and count after performing data operations based on request from
+ /// ReadAsync - Retrieves records from MySQL Server and applies data operations
+ /// Executes on grid initialization and when user performs search, filter, sort, page operations
///
- /// DataManagerRequest contains the information regarding searching, filtering, sorting, aggregates and paging which is handled on the Blazor DataGrid component side
- /// The data collection's type is determined by how this method has been implemented.
- [HttpPost]
- [Route("api/[controller]")]
- public object Post([FromBody] DataManagerRequest DataManagerRequest)
+ public override async Task