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
Gestione delle scrollbar dinamiche in HTML e CSS
Keynote .NET Conference Italia 2025
Eseguire i pre-commit hook di git con dependabot
Utilizzo di CSS Scroll Snap per realizzare un carousel
Utilizzo delle stepped value functions nel CSS
Evidenziare una porzione di testo in un pagina dopo una navigazione
Supportare la crittografia di ASP.NET Core con Azure Container App
Ottimizzare i costi con Smart tier in Azure Blob Storage
Le cron expression di un workflow di GitHub
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Ciclo di vita risorse con .NET Aspire
Configurare OpenTelemetry per Application Insights su ASP.NET Core
I più letti di oggi
- Visual Studio Live: what's next - Online
- Speciale web mobile: costruire applicazioni con ASP.NET, jQuery Mobile e PhoneGap
- Creare contatori nelle pipeline #yaml con #azuredevops https://aspit.co/byp di @xTuMiOx
- Learn&Get 'Applicazioni del mondo reale con ASP.NET 2.0' - Roma
- Real Code Conference 4.0 - Firenze
- .NET Campus 2012 - Roma
- Il secondo giorno al Webb.it




