模型委托
模型委托是用于访问表/视图的操作委托,它们由 Prisma Client 自动生成。
通常,它们使用以小写字母开头的驼峰命名法在 PrismaClient
上,例如 client.user
。
在 prisma.dart
文件中,生成的委托使用 <Model>Delegate
名称的驼峰命名法,例如 UserDelegate
。
findUnique()
findUnique()
方法用于根据唯一标识符查找单个记录。
dart
final user = await client.user.findUnique(
where: UserWhereUniqueInput(id: 'ck2l9xqjy0000yjzv6q9q4k5i'),
);
参数
参数 | 示例类型 (User ) | 必需 | 描述 |
---|---|---|---|
where | UserWhereUniqueInput | 是 | 包装所有唯一标识符 |
select | UserSelect | 否 | 选择要获取的字段 |
include | UserInclude | 否 | 包含关系字段 |
findUniqueOrThrow()
findUniqueOrThrow()
与 findUnique()
相同,但在未找到记录时抛出异常错误。
findFirst()
findFirst()
方法用于根据给定条件查找第一个记录。
dart
final user = await client.user.findFirst(
where: UserWhereInput(...),
);
参数
参数 | 示例类型 (User ) | 必需 | 描述 |
---|---|---|---|
where | UserWhereInput | 否 | 指定返回对象中要包含哪些属性。 |
select | UserSelect | 否 | 选择要获取的字段 |
include | UserInclude | 否 | 包含关系字段 |
take | int | 否 | 获取前 n 条记录 |
skip | int | 否 | 跳过前 n 条记录 |
orderBy | UserOrderByWithRelationInput 或 UserOrderByWithRelationInput 的 Iterable | 否 | 按一个或多个属性对记录排序 |
cursor | UserWhereUniqueInput | 否 | 基于游标的分页 |
`distinct | UserScalar 或 UserScalar 的 Iterable | 否 | 选择不同的记录 |
findFirstOrThrow()
findFirstOrThrow()
与 findFirst()
相同,但在未找到记录时抛出异常错误。
findMany()
findMany()
方法用于根据给定条件查找多条记录。
dart
final users = await client.user.findMany(
where: UserWhereInput(...),
);
参数
参数 | 示例类型 (User ) | 必需 | 描述 |
---|---|---|---|
where | UserWhereInput | 否 | 指定返回对象中要包含哪些属性。 |
select | UserSelect | 否 | 选择要获取的字段 |
include | UserInclude | 否 | 包含关系字段 |
take | int | 否 | 获取前 n 条记录 |
skip | int | 否 | 跳过前 n 条记录 |
orderBy | UserOrderByWithRelationInput 或 UserOrderByWithRelationInput 的 Iterable | 否 | 按一个或多个属性对记录排序 |
cursor | UserWhereUniqueInput | 否 | 基于游标的分页 |
`distinct | UserScalar 或 UserScalar 的 Iterable | 否 | 选择不同的记录 |
create()
create()
方法用于创建新记录。
dart
final user = await client.user.create(
...
);
参数
参数 | 示例类型 (User ) | 必需 | 描述 |
---|---|---|---|
data | UserCreateInput 或 UserUncheckedCreateInput 的 PrismaUnion | 是 | 要创建的数据 |
select | UserSelect | 否 | 选择要获取的字段 |
include | UserInclude | 否 | 包含关系字段 |
update()
update()
方法用于更新现有记录。
dart
final user = await client.user.update(
where: UserWhereUniqueInput(id: 'ck2l9xqjy0000yjzv6q9q4k5i'),
data: UserUpdateInput(...),
);
参数
参数 | 示例类型 (User ) | 必需 | 描述 |
---|---|---|---|
data | UserCreateInput 或 UserUncheckedCreateInput 的 PrismaUnion | 是 | 要创建的数据 |
select | UserSelect | 否 | 选择要获取的字段 |
include | UserInclude | 否 | 包含关系字段 |
where | UserWhereUniqueInput | 是 | Where 条件 |
upsert()
upsert()
方法用于更新现有记录或创建新记录。
参数
参数 | 示例类型 (User ) | 必需 | 描述 |
---|---|---|---|
where | UserWhereUniqueInput | 是 | Where 条件 |
create | UserCreateInput 或 UserUncheckedCreateInput 的 PrismaUnion | 是 | 要创建的数据 |
update | UserUpdateInput 或 UserUncheckedUpdateInput 的 PrismaUnion | 是 | 要更新的数据 |
select | UserSelect | 否 | 选择字段 |
include | UserInclude | 否 | 包含字段 |
delete()
delete()
方法用于删除现有记录。
dart
final user = await client.user.delete(
where: UserWhereUniqueInput(id: 'ck2l9xqjy0000yjzv6q9q4k5i'),
);
参数
参数 | 示例类型 (User ) | 必需 |
---|---|---|
where | UserWhereUniqueInput | 是 |
select | UserSelect | 否 |
include | UserInclude | 否 |
createMany()
createMany()
方法用于创建多条记录。
参数
参数 | 示例类型 (User ) | 必需 |
---|---|---|
data | UserCreateManyInput 或 UserCreateManyInput 的 Iterable 的 PrismaUnion | 是 |
skipDuplicates | bool | 否 |
updateMany()
updateMany()
方法用于更新多条记录。
参数
参数 | 示例类型 (User ) | 必需 |
---|---|---|
data | UserUpdateManyMutationInput 或 UserUncheckedUpdateManyInput 的 PrismaUnion | 是 |
where | UserWhereInput | 否 |
deleteMany()
deleteMany()
方法用于删除多条记录。
参数
参数 | 示例类型 (User ) | 必需 |
---|---|---|
where | UserWhereInput | 否 |
aggregate()
aggregate()
方法用于聚合多条记录。有关更多信息,请参阅 查询 → 聚合。
参数
参数 | 示例类型 (User ) | 必需 |
---|---|---|
`where | UserWhereInput | 否 |
orderBy | UserOrderByWithRelationInput 或 UserOrderByWithRelationInput 的 Iterable 的 PrismaUnion | 否 |
cursor | UserWhereUniqueInput | 否 |
take | int | 否 |
skip | int | 否 |
select | AggregateUserSelect | 否 |
groupBy()
groupBy()
方法用于根据给定条件对多条记录进行分组。有关更多信息,请参阅 查询 → 分组依据。
参数
参数 | 示例类型 (User ) | 必需 |
---|---|---|
where | UserWhereInput | 否 |
orderBy | UserOrderByWithAggregationInput 或 UserOrderByWithAggregationInput 的 Iterable 的 PrismaUnion | 否 |
by | UserScalar 或 UserScalar 的 Iterable 的 PrismaUnion | 是 |
having | UserScalarWhereWithAggregatesInput | 否 |
take | int | 否 |
skip | int | 否 |
select | UserGroupByOutputTypeSelect | 否 |