Elixir 为什么这段代码会因exto.NoPrimaryKeyValueError而失败

Elixir 为什么这段代码会因exto.NoPrimaryKeyValueError而失败,elixir,ecto,Elixir,Ecto,为什么会失败: %Partner{} |> cast(%{id: 123}, [:id]) |> delete 带有exto.NoPrimaryKeyValueError?我正在显式设置主键?对于变更集,原始结构(data)中的id由Repo使用。删除,而不是changes中的,并且cast仅将新的id放入变更。您可以将更改合并到原始结构中(数据): 或者手动将id放入%Partner{}: %Partner{id: 123} |> delete 回答很好,新的长生不老药

为什么会失败:

%Partner{} |> cast(%{id: 123}, [:id]) |> delete 

带有
exto.NoPrimaryKeyValueError
?我正在显式设置主键?

对于变更集,原始结构(
data
)中的
id
Repo使用。删除
,而不是
changes
中的,并且
cast
仅将新的
id
放入
变更
。您可以将
更改
合并到原始结构中(
数据
):

或者手动将
id
放入
%Partner{}

%Partner{id: 123} |> delete

回答很好,新的长生不老药,解决了我的问题。这个答案向我解释了什么是变更集实际上相当好。
%Partner{id: 123} |> delete