Quando si gestisce la concorrenza ottimistica con SQL Server, il modo più semplice per creare la colonna con la versione è crearla di tipo Timestamp così che ad ogni aggiornamento sia SQL Server a cambiare la versione. Per default, la proprietà che mappa sul timestamp è di tipo byte[], ma questo comportamento non è sempre ottimale per due motivi. Il primo è che byte[] è un tipo mutabile, il secondo è che un byte[] serializzato è poco comprensibile all'occhio umano e quindi rende il debug più difficile a volte. Per questi motivi, è stata aggiunta la possibilità di mappare la colonna che fa da rowversion non solo con una proprietà di tipo byte[], ma anche di tipo long. Per fare questo, dobbiamo dichiarare la proprietà dell'entity come long o ulong e nel mapping specificare che il valore della proprietà viene generato convertendo da byte[].
public partial class Person
{
public int Id { get; set; }
public string Name { get; set; }
public long Timestamp { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Customers>(entity =>
{
entity.Property(e => e.Timestamp)
.IsRowVersion()
.HasConversion<byte[]>()
.IsConcurrencyToken();
});
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Semplificare i deployment con le label in Azure Container App
Gestire progetti .NET + React in .NET Aspire
Integrare un servizio esterno con .NET Aspire
Gestire pubblicazione Kubernetes tramite .NET Aspire
Importare un servizio esterno in .NET Aspire
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Integrazione di Copilot in .NET Aspire
Integrare OpenAI tramite Aspire
Analizzare il contenuto di una issue con GitHub Models e AI
Gestire gli errori nelle Promise JavaScript con try()
Utilizzare i command service nei test con .NET Aspire
Mischiare codice server side e client side in una query LINQ con Entity Framework
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET


