为什么会失败:
%Partner{} |> cast(%{id: 123}, [:id]) |> delete
有Ecto.NoPrimaryKeyValueError
?我是明确设置主键吗?
答案 0 :(得分:2)
对于变更集,id
使用原始结构data
的{{1}},而Repo.delete
和changes
使用cast
仅id
中的新changes
。您可以将changes
合并到原始结构(data
)中:
%Partner{} |> cast(%{id: 123}, [:id]) |> Ecto.Changeset.apply_changes |> delete
或手动将id
加入%Partner{}
:
%Partner{id: 123} |> delete