ASP.NET MVC 4 WebApi があります。私は Entity Framework を ORM として使用しています (データベースが最初です)。DB には、int "id" が ID (自動インクリメント) として設定されたいくつかのフィールドを持つテスト テーブルが 1 つだけあります。
JavaScriptクライアントで基本的なCRUDを実装しようとしていますModelState.IsValid = false
が、POSTメソッドに到達すると常に取得されます。エラーを解析したところ、値が 0 の「id」フィールドからのものであることがわかりました。API はこの種の自動インクリメント キーをどのように管理しますか? 「id」フィールドで何を受け取ることを期待していますか?
すべてがテンプレートに基づいています。WebApi で生成されたコントローラーのコードは変更しませんでした。他のすべての操作 (読み取り、更新、削除) は正常に機能しています。
編集: ModelState.IsValid() テストをバイパスすると、データが DB に保存され、すべてが機能することに注意してください...しかし、明らかに、それは私がやりたいことではありません。
編集 2: データベースの ID プロパティは、EDMX の id フィールドの StoreGeneratedPattern プロパティによって処理されることがわかりました。可能な値は、「Computed」、「Identity」、および「None」です。私の場合は「Identity」に設定しています。