2

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」に設定しています。

4

1 に答える 1

2

モデルの ID に配置されていない検証を確認してください。ID を自動生成されたものとして配置してください。

于 2013-09-28T10:10:48.867 に答える