I'm sorry for the mis reproduction on my part. Everything seems fine finally. It was a matter of checking all automappers. :(
This code works fine directly from the abp framework:
var entity = entry.Entity as IHasConcurrencyStamp;
if (entity == null)
{
return;
}
Entry(entity).Property(x => x.ConcurrencyStamp).OriginalValue = entity.ConcurrencyStamp;
entity.ConcurrencyStamp = Guid.NewGuid().ToString("N");
related post that didn't help : https://abp.io/support/questions/6564/Updated-conncurrencyStamp-not-returned-on-updates
I found we can map a uInt value to track concurrency on npgsql website https://www.npgsql.org/efcore/modeling/concurrency.html?tabs=fluent-api But this is very hard to implement given the abp framework forces us to use a string for concurrency checks
Hello, I'm having an issue regarding concurrencychecks and Postgres.
This is the current table values:
All these values are being generated correctly on creation because of the following code in AggregateRoot.cs (which is our base class)
This method configures the ConcurrencyStamp property as a ConcurrencyToken
What this does, is that when we update an entity, we must provide the same ConcurrencyStamp as defined in the database which works perfectly. When we don't pass the good concurrencystamp it **crashes **as expected.
The problem arises when we update any entity or aggregate.
It just always returns the **same **concurrencystamp everytime. (The one that was created on entity creation).
Is that a known issue with postgres. What are the recommendations?
Hello, We are in the process of implementing validation in the domain service layer. But we are **not **able to localize the exceptions correctly at that layer using IObjectValidator.ValidateAsync(entity)
Actually:
Using data annotations is a simple way to implement the formal validation for a DTO in a declarative way
ExceptionToErrorInfoConverter
but it gave us a weird state where the message was translated but not the validation errors
Thanks a lot for your help.