Una delle richieste più frequenti quando si realizza una pagina che gestisce un'entità è quella di sapere l'utente che ha creato l'entità e la data di creazione oltre all'utente e la data di ultima modifica. Se adottiamo le temporal table di SQL Server, queste informazioni possono essere recuperate molto velocemente.
Per quanto riguarda la data di creazione ci basta prendere la data di scrittura del primo record ordinando per data crescente e per la data di ultima modifica applichiamo lo stesso criterio ma ordinando per data decrescente. Per quanto riguarda l'utente, il ragionamento è il medesimo con l'accortezza di avere una colonna con il nome dell'utente nella tabella e di valorizzare l'utente che effettua l'azione ogni volta che andiamo ad aggiornare o inserire il record.
Grazie al supporto alle temporal tables di Entity Framework Core, possiamo recuperare facilmente con LINQ questi dati usando l'oepratore TemporalAll come possiamo vedere nel prossimo esempio.
var creationData = Context.People
.TemporalAll()
.Where(c => c.Id = 10)
.OrderBy(c => EF.Property<DateTime>(c, "SysStartTime"))
.Select(c => new { c.Username, CreationDate = EF.Property<DateTime>(c, "SysStartTime") })
.First();
var lastUpdateData = Context.People
.TemporalAll()
.Where(c => c.Id = 10)
.OrderByDescending(c => EF.Property<DateTime>(c, "SysStartTime"))
.Select(c => new { c.Username, CreationDate = EF.Property<DateTime>(c, "SysStartTime") })
.First();Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Interagire con Azure DevOps tramite MCP Server
Gestione delle scrollbar dinamiche in HTML e CSS
Blazor e Static Web Assets in .NET 10
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Utilizzare WebJobs su Linux con Azure App Service
Utilizzo del persistent state di Blazor nel prerendering
Rendere affidabile lo scale out su Azure App Service
Impostare il tipo di supporto dei campi Json in Entity Framework con Sql Server
Integrare Agenti A2A in Azure API Management
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Definire il metodo di rilascio in .NET Aspire




