dcs*_*san 5 orm typescript prisma
我有两个模型,Fish 和 BoardFish\n具有 1:1 关系 - BoardFish 是 Fish 的一种类型\n我创建了一些具有命名类型的种子 Fish。
\n我怎样才能在 Prisma 中做到这一点?我认为我已经有了模式设置,但是除了花哨/嵌套类型之外,插入数据并没有真正记录下来。
\n架构:
\nmodel Fish {\n name String @id\n boardFish BoardFish[]\n}\n\nmodel BoardFish {\n id Int @id @default(autoincrement())\n name String\n fishType Fish @relation(fields: [name], references: [name])\n}\nRun Code Online (Sandbox Code Playgroud)\n尝试创建:
\n let fishes = []\n for (let c = 0; c < fishCount; c++) {\n const fishType = await prisma.fish.findFirst({ where: { name: 'salmon' } })\n const fishData = {\n fishType: fishType!.name,\n // name: 'salmon',\n px: 0,\n py: 0,\n }\n const fish = await prisma.boardFish.create({ data: fishData })\n fishes.push(fish)\n }\nRun Code Online (Sandbox Code Playgroud)\n但我无法进行插入:
\n\xe2\x86\x92 35 const fish = await prisma.boardFish.create({\n data: {\n fishType: 'salmon',\n ~~~~~~~~\n px: 3,\n py: 5\n }\n })\n\nArgument fishType: Got invalid value 'salmon' on prisma.createOneBoardFish. Provided String, expected FishCreateNestedOneWithoutBoardFishInput:\ntype FishCreateNestedOneWithoutBoardFishInput {\n create?: FishCreateWithoutBoardFishInput | FishUncheckedCreateWithoutBoardFishInput\n connectOrCreate?: FishCreateOrConnectWithoutBoardFishInput\n connect?: FishWhereUniqueInput\n}\nRun Code Online (Sandbox Code Playgroud)\n所涉及的类型很难理解,Prisma 似乎真的很擅长用数千行自动生成的代码来实现大多数“魔法”,我一直在挖掘这些代码,但运气不佳。
\n小智 5
如果你想要有 1:1 的关系,我认为模式需要看起来更像这样:
model Fish {
name String @id
boardFish BoardFish? // removed autogenerated `[]` and made optional
}
model BoardFish {
id Int @id @default(autoincrement())
name String
fishType Fish @relation(fields: [name], references: [name])
}
Run Code Online (Sandbox Code Playgroud)
创建相关记录时,使用 prisma 的connect api
model Fish {
name String @id
boardFish BoardFish? // removed autogenerated `[]` and made optional
}
model BoardFish {
id Int @id @default(autoincrement())
name String
fishType Fish @relation(fields: [name], references: [name])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4527 次 |
| 最近记录: |