Quando specifichiamo una proprietà chiave di tipo intero (Int16, Int32, Int64), Entity Framework Code-First assume che questa proprietà sia un'identity sul database. Questo comportamento va bene in molti casi, ma in altri può rappresentare un problema. Per modificarlo, possiamo decorare la proprietà chiave con la DataAnnotation DatabaseGenerated, alla quale passiamo il valore DatabaseGeneratedOption.None, per indicare che il valore non deve essere autogenerato dal database.
[DatabaseGenerated(DatabaseGeneratedOption.None)] public int Id { get; set; }
Se abbiamo un qualunque campo della classe che deve essere sempre aggiornato con valori generati dal database (sia in inserimento che in aggiornamento), possiamo passare all'attributo il valore DatabaseGeneratedOption.Computed.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare i primary constructor in C#
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Utilizzare Azure AI Studio per testare i modelli AI
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Implementare l'infinite scroll con QuickGrid in Blazor Server
Eseguire una GroupBy per entity in Entity Framework
Installare le Web App site extension tramite una pipeline di Azure DevOps
Sostituire la GitHub Action di login su private registry
Utilizzare il trigger SQL con le Azure Function
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Evitare la script injection nelle GitHub Actions