Usare le navigation property in QuickGrid di Blazor

di Marco De Sanctis, in ASP.NET Core,

Nello script precedente (https://www.aspitalia.com/script/1482/Utilizzare-QuickGrid-Blazor-Entity-Framework.aspx) abbiamo visto come, grazie all'integrazione tra QuickGrid ed Entity Framework, numerose funzionalità associate a questo componente siano disponibili out of the box, semplicemente referenziando il DbSet desiderato nella proprietà Items.

L'aspetto interessante è che non siamo obbligati a passare esclusivamente un DbSet, ma è possible includere una normale Expression. Torniamo a dare un'occhiata al nostro DbContext, e in particolare alla relazione tra Share e Industry:

public class MyContext : DbContext
{
    public MyContext(DbContextOptions<MyContext> options)
        : base(options)
    {
    }

    // Id, CompanyName, Value, Industry
    public DbSet<Share> Shares { get; set; }

    // Id, Name
    public DbSet<Industry> Industries { get; set; }
}

Esiste una navigation property tra le due entity, che ovviamente possiamo referenziare anche in QuickGrid:

<QuickGrid Items="data.Shares.Include(x => x.Industry)" Pagination="@pagination">
    <PropertyColumn Title="Company" Property="@(x => x.CompanyName)" Sortable="true" />
    <PropertyColumn Title="Industry" Property="@(x => x.Industry.Name)" Sortable="true" />
    <PropertyColumn Title="Value" Property="@(x => x.Value)" Format="c" Sortable="true" />
</QuickGrid>

L'unico accorgimento da tenere presente, è quello di utilizzare l'operatore Include per far sì che Entity Framework carichi la industry con un'unica query.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi