Generatore di guida sequenziale

Esiste un modo per ottenere la funzionalità del generatore di istruzioni sequenziali Sql Server 2005+ senza inserire record per leggerlo durante il round trip o richiamare una chiamata win dll nativa? Ho visto qualcuno rispondere con un modo di usare rpcrt4.dll ma non sono sicuro che sarebbe in grado di lavorare dal mio ambiente ospitato per la produzione.

Modifica: Lavorando con la risposta di @John Boker, ho tentato di trasformarlo in un altro generatore di GuidComb invece di dipendere dall’ultima Guida generata diversa da quella di ricominciare. Quello per il seme invece di iniziare con Guid.Empty che uso

public SequentialGuid() { var tempGuid = Guid.NewGuid(); var bytes = tempGuid.ToByteArray(); var time = DateTime.Now; bytes[3] = (byte) time.Year; bytes[2] = (byte) time.Month; bytes[1] = (byte) time.Day; bytes[0] = (byte) time.Hour; bytes[5] = (byte) time.Minute; bytes[4] = (byte) time.Second; CurrentGuid = new Guid(bytes); } 

L’ho basato sui commenti

 // 3 - the least significant byte in Guid ByteArray [for SQL Server ORDER BY clause] // 10 - the most significant byte in Guid ByteArray [for SQL Server ORDERY BY clause] SqlOrderMap = new[] {3, 2, 1, 0, 5, 4, 7, 6, 9, 8, 15, 14, 13, 12, 11, 10}; 

Questo sembra il modo in cui vorrei seminare un guid con DateTime o sembra che dovrei farlo al contrario e lavorare all’indietro dalla fine degli indici SqlOrderMap? Non sono troppo preoccupato del fatto che si tratti di un’interruzione di paging ogni volta che viene creato un percorso iniziale poiché si verifica solo durante i ricicli dell’applicazione.