Azure Storage Tableにデータを入れようと思って.NetSDKからデータを投げても「400不正な要求です」のようなメッセージしか出てこなくてなぜ入らないかわからなかった時のチェックリスト
TableEntityクラスの派生にしているか
挿入する型はTableEntityクラスの派生型である必要があります。
加えて、引数なしのコンストラクタが作成されている必要があります。
public class SalesEntity:TableEntity { public SalesEntity(int id,string date) { this.PartitionKey = id.ToString(); this.RowKey = date; } public SalesEntity() { } public int opentime { get; set; } public int staff { get; set; } public double advertise { get; set; } public double stock { get; set; } public double sales { get; set; } }
不正な型が入っている
挿入するクラスのメンバーの型に特殊なのが入っているとエラーになります。
普通のプリミティブ型(intやdoubleなど)は普通にinsertできるはずです
不正な文字列が入っている
私はこれでした。
例えば「”/”」スラッシュなどは不正な文字列とされています。
これらが入っていると不正な文字列が入っているとエラーが出るわけではなくて「要求が不適切です」としかひょうじされないのでとても困った。
解決方法は別の文字列に置換しましょう。
どうやってわかったか
Storage ExplorerでImportしてみて初めて気づきました。
StorageExplorerはエラー文をちゃんと出してくれて最高です。