Table Storage は null 値でクエリできないよ
タイトルのとおりなのだけど 、SQL Server でいう where hoge is null
みたいなクエリができない。
アプリケーションのユースケースとして null でクエリしないようにする、というのはもちろんだが、運用で「このカラムが null のものだけ調べたい」みたいなこともできないので注意。
そもそも思想として null を入れないようにすべきなのだろうけど not null 制約などはかけられないので実装レベルで気をつける必要がある。
とくに困るのは、あとからプロパティが追加された場合。プロパティの追加はマイグレーションが必須ではないので、新たなプロパティを持つレコードが追加されたら古いデータはそのプロパティに null をもってしまう。こうなるとプロパティが追加される前のレコードか後のレコードかが判別できないので、プロパティ追加前のレコードのみマイグレーションをかける、みたいなことができない。
教訓
- 不用意にプロパティを増やしてはいけない
- プロパティを増やす場合には、事前にマイグレーションするか、プロパティが増える前のレコードがどれかをわかるようにしとく