You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Prisma Rust Client中的多对多连接编译错误?

解决Prisma Client Rust显式多对多关联编译错误

问题原因

你显式定义了多对多中间表MembersOnEmployers,此时Member与Employer的关联需要通过中间表映射,不能直接使用employer::id::equals作为member::employers::connect的参数——因为connect需要的是中间表的UniqueWhereParam,而非Employer的参数,这就是编译错误的核心原因。

解决方案

有两种可行的修改方式:

方式1:先创建Member,再单独创建中间表关联记录

先完成Member的创建,再通过中间表MembersOnEmployers关联Employer:

// 1. 创建Member
let member = client
    .member()
    .create(
        member_data[0].to_string(),
        member_data[1].to_string(),
        vec![],
    )
    .exec()
    .await
    .unwrap();

// 2. 创建中间表记录,关联Employer和Member
client
    .members_on_employers()
    .create(
        prisma::employer::id::equals(employer_id),
        prisma::member::id::equals(member.id),
        vec![], // 若需设置transitions字段,可在此添加对应的操作
    )
    .exec()
    .await
    .unwrap();

方式2:创建Member时通过中间表直接关联

利用member::members_on_employers::create操作,在创建Member的同时完成关联:

client
    .member()
    .create(
        member_data[0].to_string(),
        member_data[1].to_string(),
        vec![
            prisma::member::members_on_employers::create(
                vec![
                    prisma::members_on_employers::employer::connect(
                        prisma::employer::id::equals(employer_id.clone())
                    ),
                ]
            ),
        ],
    )
    .exec()
    .await
    .unwrap();

内容的提问来源于stack exchange,提问作者Tim Kariuki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:37:25