Open Closed

GuidGenerator error #5758


User avatar
0
dev_marcelo created
  • ABP Framework version: 6.0.0.0
  • UI Type: Angular
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Steps to reproduce the issue:

Error on generating GUID, portion of code from repository to set Id

Class EfCoreRepository

`protected virtual void CheckAndSetId(TEntity entity) { if (entity is IEntity

protected virtual void TrySetGuidId(IEntity<Guid> entity)
{
    if (entity.Id != default)
    {
        return;
    }

    EntityHelper.TrySetId(
        entity,
        () => GuidGenerator.Create(),
        true
    );
}`

the guid generated does not match the pattern for GUIDs [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12} based on https://datatracker.ietf.org/doc/html/rfc4122

Partial solution

public class GuidValueGenerator : ValueGenerator<Guid> { private readonly IGuidGenerator _guidGenerator; private readonly string pattern = @"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$";

public override bool GeneratesTemporaryValues => false;

public GuidValueGenerator()
{
    var options = Options.Create(new AbpSequentialGuidGeneratorOptions());
    options.Value.DefaultSequentialGuidType = SequentialGuidType.SequentialAtEnd;

    _guidGenerator = new SequentialGuidGenerator(options);
}


public override Guid Next(EntityEntry entry)
{
    var result = GenerateNextValue();

    string json = JsonConvert.SerializeObject(entry.Entity);

    WriteOnText(result.ToString());
    WriteOnText(json);

    return result;
}

public Guid GenerateNextValue()
{
    var result = _guidGenerator.Create();

    if (!Regex.IsMatch(result.ToString(), pattern))
    {
        return GenerateNextValue();
    }

    return result;
}

public void WriteOnText(string newGuid)
{
    string filePath = @"D:\guid-lines.txt"; // Replace with your file path

    // Open the file for writing
    using (StreamWriter writer = new StreamWriter(filePath, true))
    {
        writer.WriteLine(newGuid);
    }
}

}

Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

7 Answer(s)
  • User Avatar
    0
    dev_marcelo created

    Let me know when you fix this problem please to delete my own implementation

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    the guid generated does not match the pattern for GUIDs

    This is abp implement.

    https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.Guids/Volo/Abp/Guids/SequentialGuidGenerator.cs#L14

    If you think there is an error you can replace it with your own. : )

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    ElevosDev created

    I was using yours, and it was generating not valid GUIDs

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    It doesn't match the https://datatracker.ietf.org/doc/html/rfc4122

    But there should be no error.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    ElevosDev created

    from 100 just 15 pass, I have to connect to other systems that validate the Id of some elements, so, all my Ids has to pass

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    That is why I suggest you replace the default implement.

    I have refunded your question credits.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    ElevosDev created

    As I say, the default implementation generates this problem, just test it yourself.

    Thank you very much for the credits, I appreciate it

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on September 16, 2026, 14:50
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.