You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Alle gyldige og samtidige POST requests for å legge til en barneentitet, eller PUT for å oppdater en (barne)entitet uten If-Match request header skal returnere 2xx Rekkefølge er ikke definert, "last request wins".
Faktisk oppførsel
Det returneres 412 Precondition Failed
Ytterligere informasjon
For POST på barneentiteter blir det uansett foretatt en full update på hele aggregatet hvor optimistic concurrency control uansett blir foretatt, selv om sluttbruker ikke oppgir If-Match-header. I de tilfellene må vi på en eller annen måte deaktivere denne kontrollen, eller gjenta forsøk inntil skrivingen lykkes.
Concurrent writes uten å oppgi If-Match er forøvrig noe vi ikke tilbyr noen garantier rundt mht konsistens på rekkefølge, men hvis tjenesteeier implisitt oppgir at han ikke bryr seg om f.eks. rekkefølgen på dialogelementer som legges til samtidig, skal dette kunne støttes (og innebære individuelle events).
Det er pt ikke mulig å dynamisk opte-ut av optimistic concurrency-håndteringen i EF, dette blir muligens støttet som følge av dotnet/efcore#10443. Løsningen må derfor inntil videre være at vi i disse tilfellene forsøker på nytt (og på nytt) inntil vi faktisk klarer å gjøre oppdateringen.
Beskrivelse
Samtidige skriveoperasjoner uten If-Match header gir 412 Precondition Failed
Reproduksjon
Kjør mer to eller flere paralelle POSTs til en barneentitet, f.eks. activities.
Se #348 for e2e-test som viser dette
Forventet oppførsel
Alle gyldige og samtidige POST requests for å legge til en barneentitet, eller PUT for å oppdater en (barne)entitet uten If-Match request header skal returnere 2xx Rekkefølge er ikke definert, "last request wins".
Faktisk oppførsel
Det returneres 412 Precondition Failed
Ytterligere informasjon
For POST på barneentiteter blir det uansett foretatt en full update på hele aggregatet hvor optimistic concurrency control uansett blir foretatt, selv om sluttbruker ikke oppgir If-Match-header. I de tilfellene må vi på en eller annen måte deaktivere denne kontrollen, eller gjenta forsøk inntil skrivingen lykkes.
Concurrent writes uten å oppgi If-Match er forøvrig noe vi ikke tilbyr noen garantier rundt mht konsistens på rekkefølge, men hvis tjenesteeier implisitt oppgir at han ikke bryr seg om f.eks. rekkefølgen på dialogelementer som legges til samtidig, skal dette kunne støttes (og innebære individuelle events).
Det er pt ikke mulig å dynamisk opte-ut av optimistic concurrency-håndteringen i EF, dette blir muligens støttet som følge av dotnet/efcore#10443. Løsningen må derfor inntil videre være at vi i disse tilfellene forsøker på nytt (og på nytt) inntil vi faktisk klarer å gjøre oppdateringen.
EF kaster her en exception knyttet til concurrency-sjekken feiler. Fra denne vil det være mulig å hente ut revision-ID-en som faktisk ligger i databasen, og forsøke på nytt. Se https://learn.microsoft.com/en-us/ef/core/saving/concurrency?tabs=data-annotations#resolving-concurrency-conflicts
Tasks
Se også
The text was updated successfully, but these errors were encountered: