by Guest » 20 Dec 2024, 13:20
Ich bin dabei, ein bestehendes Projekt mit Microsoft.Azure.Cosmos.Table nach Azure.Data.Tables zu migrieren. Ich habe den Migrationsleitfaden befolgt und mein benutzerdefiniertes Modell mit ITableEntity implementiert
mit Cosmos sah die Einfügung so aus
private async Task InsertOrMergeAsync(CloudTable table, OfficeSupplyEntity record)
{
var insertOrMergeOperation = TableOperation.InsertOrMerge(record);
await table.ExecuteAsync(insertOrMergeOp);
}
nach der Migration wurde es in
konvertiert private async Task InsertOrMergeAsync(TableClient table, OfficeSupplyEntity record)
{
await table.UpsertEntityAsync(record);
}
aber jetzt erhalte ich eine Fehlermeldung
An error occurred while processing this request.
RequestId:915023cb-f88d-47c3-81f0-1debbf39c8ef
Time:2024-12-19T07:26:55.088Z
Status: 400 (Bad Request)
ErrorCode: InvalidInput
Content:
{"odata.error":{"code":"InvalidInput","message":{"lang":"en-US","value":"An error occurred while processing this request.\nRequestId:915023cb-f88d-47c3-81f0-1debbf39c8ef\nTime:2024-12-19T07:26:55.088Z"}}}
Headers:
Server: Azurite-Table/3.33.0
x-ms-error-code: REDACTED
x-ms-request-id: 915023cb-f88d-47c3-81f0-1debbf39c8ef
x-ms-version: REDACTED
Date: Thu, 19 Dec 2024 07:26:55 GMT
Connection: keep-alive
Keep-Alive: REDACTED
Transfer-Encoding: chunked
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
im Leitfaden ist es auch in diesem Abschnitt unklar
direktes Zitieren unten
Früher haben wir in Microsoft.Azure.Cosmos.Table eine TableOperation erstellt und diese mit dem Tabellenclient ausgeführt.
Das Ergebnis der Operation muss zurück in die Entität umgewandelt werden Typ.
// Create the InsertOrReplace table operation
TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity);
// Execute the operation.
TableResult result = cloudTable.Execute(insertOrMergeOperation);
// Cast the result.
OfficeSupplyOld insertedCustomer = result.Result as OfficeSupplyOld;
Jetzt können wir in Azure.Data.Tables mit dem TableClient unsere Entität einfach an die UpsertEntity-Methode übergeben, die erstellt oder aktualisiert die Entität abhängig davon, ob
sie bereits existiert oder nicht.
// Upsert the newly created entity.
tableClient.UpsertEntity(tableEntity);
in der Anleitung Was ist TableEntity? Unterscheidet es sich von der Entity?
Ich bin dabei, ein bestehendes Projekt mit Microsoft.Azure.Cosmos.Table nach Azure.Data.Tables zu migrieren. Ich habe den Migrationsleitfaden befolgt und mein benutzerdefiniertes Modell mit ITableEntity implementiert
mit Cosmos sah die Einfügung so aus
private async Task InsertOrMergeAsync(CloudTable table, OfficeSupplyEntity record)
{
var insertOrMergeOperation = TableOperation.InsertOrMerge(record);
await table.ExecuteAsync(insertOrMergeOp);
}
nach der Migration wurde es in
konvertiert private async Task InsertOrMergeAsync(TableClient table, OfficeSupplyEntity record)
{
await table.UpsertEntityAsync(record);
}
aber jetzt erhalte ich eine Fehlermeldung
An error occurred while processing this request.
RequestId:915023cb-f88d-47c3-81f0-1debbf39c8ef
Time:2024-12-19T07:26:55.088Z
Status: 400 (Bad Request)
ErrorCode: InvalidInput
Content:
{"odata.error":{"code":"InvalidInput","message":{"lang":"en-US","value":"An error occurred while processing this request.\nRequestId:915023cb-f88d-47c3-81f0-1debbf39c8ef\nTime:2024-12-19T07:26:55.088Z"}}}
Headers:
Server: Azurite-Table/3.33.0
x-ms-error-code: REDACTED
x-ms-request-id: 915023cb-f88d-47c3-81f0-1debbf39c8ef
x-ms-version: REDACTED
Date: Thu, 19 Dec 2024 07:26:55 GMT
Connection: keep-alive
Keep-Alive: REDACTED
Transfer-Encoding: chunked
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
im Leitfaden ist es auch in diesem Abschnitt unklar
[b]direktes Zitieren unten[/b]
Früher haben wir in Microsoft.Azure.Cosmos.Table eine TableOperation erstellt und diese mit dem Tabellenclient ausgeführt.
Das Ergebnis der Operation muss zurück in die Entität umgewandelt werden Typ.
// Create the InsertOrReplace table operation
TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity);
// Execute the operation.
TableResult result = cloudTable.Execute(insertOrMergeOperation);
// Cast the result.
OfficeSupplyOld insertedCustomer = result.Result as OfficeSupplyOld;
Jetzt können wir in Azure.Data.Tables mit dem TableClient unsere Entität einfach an die UpsertEntity-Methode übergeben, die erstellt oder aktualisiert die Entität abhängig davon, ob
sie bereits existiert oder nicht.
// Upsert the newly created entity.
tableClient.UpsertEntity(tableEntity);
in der Anleitung [b]Was ist TableEntity? Unterscheidet es sich von der Entity?[/b]