由于子 table 约束,使用 Entity Framework 核心 HttpPost 将数据添加到 Postgres 数据库失败
Adding data to Postgres database with Entity Framework Core HttpPost failing because of child table constraint
我正在尝试使用 Entity Framework Core 通过 Http POST 方法将一些数据添加到 Postgres 数据库。
要添加的数据在我的 post 请求正文中传递,如下所示:
{"id":42,"name":"Hans Musterman","email":"hans@gpost.com", "gender": {"id": 2, "name": "male"}}
这正是我使用 get 请求返回的结构。
插入仍然失败并出现错误:
Duplicate key value violates unique constraint "PK_Genders"
当然 Genders
table 中已经存在性别男性。我想要做的是将用户添加到用户 table 中,该用户具有性别但被新用户引用但不是新创建的。使用 DbContext
添加时系统似乎在尝试添加用户和性别。
有没有办法通过参考来做到这一点?使用 "gender" = null
添加用户确实有效。
我认为你应该有类似 genderId
或引用 user
模型中的 gender
table 的外键使用该外键 ID(genderId
) 而不是 gender
.
例如。在你 user
对象
{ ... "genderId": 2 }
否则 Entity Framework 将创建一个新的性别,这就是您收到该错误的原因
我正在尝试使用 Entity Framework Core 通过 Http POST 方法将一些数据添加到 Postgres 数据库。
要添加的数据在我的 post 请求正文中传递,如下所示:
{"id":42,"name":"Hans Musterman","email":"hans@gpost.com", "gender": {"id": 2, "name": "male"}}
这正是我使用 get 请求返回的结构。
插入仍然失败并出现错误:
Duplicate key value violates unique constraint "PK_Genders"
当然 Genders
table 中已经存在性别男性。我想要做的是将用户添加到用户 table 中,该用户具有性别但被新用户引用但不是新创建的。使用 DbContext
添加时系统似乎在尝试添加用户和性别。
有没有办法通过参考来做到这一点?使用 "gender" = null
添加用户确实有效。
我认为你应该有类似 genderId
或引用 user
模型中的 gender
table 的外键使用该外键 ID(genderId
) 而不是 gender
.
例如。在你 user
对象
{ ... "genderId": 2 }
否则 Entity Framework 将创建一个新的性别,这就是您收到该错误的原因