Save $100 with promo code CHEERS2025

As we are looking forward to an incredible 2025, enjoy our end-of-year promotion! Valid now through January 6th.

See Pricing

Still using Radzen Studio?
Achieve more with Radzen Blazor Studio

Radzen Blazor Studio is our new flagship product and vision of how rapid Blazor application development should be done.

Go to Radzen Blazor Studio

Extend model with additional property (Blazor)

This guide demonstrates how to extend model with additional property.

You can extend your table class with additional, not-mapped properties. For example you can add ExtendedPrice to Northwind OrderDetails (SQL Table) from OrderDetailsExtended (SQL View) using partial classes:

1. Add Northwind OrderDetails partial class with ExtendedPrice property

OrderDetail.Custom.cs

public partial class OrderDetail
{
  // Additional property
  [NotMapped]
  public decimal? ExtendedPrice
  {
    get;
    set;
  }
}

2. Populate ExtendedPrice from OrderDetailsExtended using OnOrderDetailsRead partial method in NorthwindService partial class

server\Services\NorthwindService.Custom.cs

using SampleBlazor.Models.Northwind;
using System.Linq;

namespace SampleBlazor
{
    public partial class NorthwindService
    {
        partial void OnOrderDetailsRead(ref IQueryable<OrderDetail> items)
        {
            var orderDetailsExtended = this.context.OrderDetailsExtendeds.ToList();
            // Populate additional property
            foreach (var item in items)
            {
                var orderDetailExtended = orderDetailsExtended
                    .Where(ode => ode.OrderID == item.OrderID && ode.ProductID == item.ProductID)
                    .FirstOrDefault();

                if (orderDetailExtended != null)
                {
                    item.ExtendedPrice = orderDetailExtended.ExtendedPrice;
                }
            }
        }
    }
}

3. Create new page, bind DataGrid component to Northwind OrderDetails and add additional column bound to ExtendedPrice property (not available in intellisense)

4. Run the application