传递密钥时,ASP.NET MVC 4 ModelState无效

时间:2013-01-18 20:29:40

标签: entity-framework asp.net-mvc-4 auto-increment put modelstate

我有一个ASP.NET MVC 4 WebApi。我使用Entity Framework作为我的ORM(数据库优先)。 DB只有一个带有几个字段的测试表,其中int“id”设置为identity(自动增量)。

我只是尝试使用javascript客户端实现基本的CRUD,但是当我进入POST方法时,我总是得到ModelState.IsValid = false。我解析了错误并看到它来自“id”字段,其值为0. api如何管理这种自动增量键?它希望在“id”字段中收到什么?

一切都基于模板。我没有将任何代码更改为WebApi生成的控制器。所有其他操作(读取,更新,删除)都正常工作。

编辑:请注意,如果我绕过ModelState.IsValid()测试,数据将保存在数据库中,一切正常......但显然,这不是我想要做的。

编辑2:我发现数据库中的标识属性由EDMX中id字段的StoreGeneratedPattern属性处理。可能的值有:“Computed”,“Identity”和“None”。就我而言,它被设置为“身份”。

1 个答案:

答案 0 :(得分:2)

检查验证未在模型中添加ID。将ID设为自动生成。