Comment on page
SequentialGuidProvider
SequentialGuidProvider
provides functionality for server side generation sequential GUID (COMB GUID).The basic setup is:
services.AddSequentialGuidProvider();
AddSequentialGuidProvider
extension method performs registration of SequentialGuidProvider with specified settings.Parameter name | Parameter type | Description |
---|---|---|
initializer | SequentialGuidInitializer | Initializer which returns GUID to combine with timestamp. Default value is Guid.NewGuid . |
timestampProvider | SequentialGuidTimestampProvider | Timestamp provider for generating COMB GUID. |
Inject
ISequentialGuidProvider
service and use it:public class FileService : ICustomService
{
private readonly ISequentialGuidProvider _sequentialGuidProvider;
public FileService(ISequentialGuidProvider _sequentialGuidProvider)
=> _sequentialGuidProvider = _sequentialGuidProvider;
public void Upload()
{
Guid fileId = _sequentialGuidProvider.GetSequentialGuid(SequentialGuidType.String);
}
}
ITimestampProvider
methods list:Method name | Return type | Description |
---|---|---|
GetSequentialGuid | Guid | Generate new sequential GUID. |
GetSequentialGuid
method generating sequential GUID with following types:SequentialGuidType.String
- The first six bytes are in sequential order, and the remainder is random. Inserting these values into a database that stores GUIDs as strings (such as MySQL) should provide a performance gain over non-sequential values. This type should be used with MySQL or PostgreSQL database.SequentialGuidType.Binary
- The first two blocks are "jumbled" due to having all their bytes reversed (this is due to the endianness issue discussed earlier). If we were to insert these values into a text field (like they would be under MySQL or PostgreSQL), the performance would not be ideal. This type should be used with Oracle database.SequentialGuidType.Ending
- The last six bytes are in sequential order, and the rest is random. This type should be used with MS SQL Server database.Last modified 1yr ago