Ho bisogno di un numero di riferimento sequenziale per gli articoli. Normalmente userei solo una colonna Identity, ma da SQL 2012 possono saltare fino al prossimo 1000 (sto vedendo 1, 2, 1001, 2001, 2002).
Leggendo, vedo suggerimenti sull'utilizzo di una sequenza, poiché ora è semplice con EF Core 2.1. Il problema è che ha ancora del caching, 50 numeri alla volta, quindi ora vedo 1, 2, 3, 51, 52.
Guardando la documentazione SQL posso vedere che puoi disabilitare questo caching, non c'è proprio modo, che io possa vedere, di farlo tramite l'API fluente in EF Core.
Suggerimenti?
Sono curioso, quindi sto cercando una soluzione più elegante ma nel frattempo ... Forse puoi aggirare questo "di lato". Crea una tabella solo per questo problema di sequenziamento in questo modo:
public class mySequence {
public int sequence {get; set;}
public bool locked {get; set;}
}
Crea un indice (decrescente) sulla sequenza. 1) Sequenza di blocco TABELLA; 2) Trova "next" sequenceed #; 3) Se nessuno, semina con i successivi numeri di sequenza X; 4) Blocca la sequenza "successiva" #; 5) Unlock Table; 6) Usa la sequenza # nei tuoi dati reali
Devono avere il controllo esclusivo su alcune risorse per mitigare collisioni / duplicati.
Hm, una soluzione più "elegante" si presenta ...