解決方法わかりません。
CosmosDBからID指定でデータを取得する際は、Container.ReadItemAsyncを使うと楽です。
use Microsoft.Azure.Cosmos;
CosmosClient cosmosClient = new("エンドポイント");
Database database = cosmosClient.GetDatabase("DB名");
Container container = database.GetContainer("テーブル名");
ItemResponse<DummyModel> itemResponse = await container.ReadItemAsync<DummyModel>("ID", new PartitionKey("partitionKey"));
ところが最後のReadItemAsync()
で、存在しないIDを指定するとCosmosExceptionが発生します。
なんで。
さらにCosmosDB側にも404のステータスコードが発生します。
なんで。
普通に、存在しなかったらnullとか空配列を返してくれるだけでいいんだけど。
せめてItemRequestOptionsとかで対応できないものでしょうか。
こんなクッソどうでもいいログがいちいちLog Analyticsとかにまで流れて無駄なんで止めたいんですが。
こんなおかしな挙動何も言われないわけがなく既にIssueになっているのですが、しかしこれ対応なんてしねえよでFAです。
どうにかするにはStreaming APIを使え、っことらしいのですが、このStreaming API全然情報が出てこないのでよくわからない。
どうしてFromStreamとかいちいち自力で実装しないといけないんですか?