Windows Azure TableServiceContext Fortryd

Indlæg af Hanne Mølgaard Plasc

Problem



Når du forsøger at gemme et objekt ved hjælp af en ulovlig karakter (fx '/') i RowKey kastes en undtagelse, når du ringer


\_tableServiceContext.AddObject(tableName, myEntity);


Jeg får en System.Data.Services.Client.DataServiceRequestException med informationen 'uden for rækkevidde', som let kan forhindres (ved at forhindre eller kontrollere ulovlige tegn).


Mit spørgsmål er nu, hvordan kan jeg komme tilbage fra denne status? Efter en sådan fejl mislykkes alle efterfølgende AddObject-opkald, formodentlig fordi den 'korrupte objekt' stadig tilhører konteksten.


Derfor søger jeg en 'UndoChanges' mulighed.


Eventuelle tip er værdsat, tak.


P.S .:
Jeg søger en bedre måde end at smide sammen konteksten eller at slette objektet fra konteksten ...

Bedste reference


Den bedste måde er sandsynligvis at løsne entiteten fra konteksten. Hvis det ikke er en mulighed af en eller anden grund, kan du forsøge at gemme med SaveChangesOption.ContinueOnErrors sæt.


\_tableServiceContext.SaveChangesWithRetries(SaveChangesOptions.ContinueOnError);


Dette gælder i grunden alle opdateringerne en ad gangen, i stedet for i partier. Bemærk, at det vil ignorere alle fejl, der opstår, ikke kun den fra den ulovlige enhed.