对象字面量只能指定已知属性,并且 'clientId' 类型不存在 'RatesWhereUniqueInput'
Object literal may only specify known properties, and 'clientId' does not exist in type 'RatesWhereUniqueInput'
我在使用带有 prisma 和 typegraphql 的打字稿时遇到了这个类型错误。 RatesWhereUniqeInput 由 prisma 生成,并将自己定义为“CompoundUniqueInput”,因为我引用的数据库有 2 个键(clientId:字符串,employeeId:数字)。
在我的存储库中,我想使用这两个来使用“update()”来引用特定的数据库行,但是因为类型是在 prisma 客户端中生成的 clientId_employeeId?我收到类型错误。
存储库功能
async update(model: Rates): Promise<Rates> {
const { employeeId, clientId, ...data } = this.mapper.from(model);
const entity = await this.db.rates.update({
where: { employeeId, clientId },
data: {
...data,
},
});
return this.mapper.to(entity);
}
棱镜index.d.ts
export type RatesWhereUniqueInput = {
clientId_employeeId?: RatesClientIdEmployeeIdCompoundUniqueInput
}
ratesmapper.ts
@injectable()
export class RatesMapper {
public from(model: Rates): RatesEntity {
return {
employeeId: model.employeeId,
clientId: model.clientId,
rateFull: model.rateFull,
rateQuarter: model.rateQuarter,
rateLine: model.rateLine,
rateWord: model.rateWord,
createdAt: model.createdAt,
updatedAt: model.updatedAt,
};
}
public to(entity: RatesEntity): Rates {
return new Rates({
...entity,
});
}
}
澄清一下,您正在尝试 运行 update
使用 prisma 查询来自 Rates
table/model 的单个记录。为此,您的 where
条件出现错误。
解决方案
尝试按如下方式更改 update
查询:
const entity = await this.db.rates.update({
where: {
clientId_employeeId: {
employeeId,
clientId,
},
},
data: {
...data,
},
});
这是 Prisma 在为具有复合 ID 或唯一标识符(由模型的多个字段组成的 ID 或唯一标识符)的模型指定 where 条件时使用的语法。您可以在 Prisma 文档中 CRUD Reference Guide 的 通过化合物 ID 或化合物唯一标识符获取记录 小节中阅读更多内容。
我在使用带有 prisma 和 typegraphql 的打字稿时遇到了这个类型错误。 RatesWhereUniqeInput 由 prisma 生成,并将自己定义为“CompoundUniqueInput”,因为我引用的数据库有 2 个键(clientId:字符串,employeeId:数字)。
在我的存储库中,我想使用这两个来使用“update()”来引用特定的数据库行,但是因为类型是在 prisma 客户端中生成的 clientId_employeeId?我收到类型错误。
存储库功能
async update(model: Rates): Promise<Rates> {
const { employeeId, clientId, ...data } = this.mapper.from(model);
const entity = await this.db.rates.update({
where: { employeeId, clientId },
data: {
...data,
},
});
return this.mapper.to(entity);
}
棱镜index.d.ts
export type RatesWhereUniqueInput = {
clientId_employeeId?: RatesClientIdEmployeeIdCompoundUniqueInput
}
ratesmapper.ts
@injectable()
export class RatesMapper {
public from(model: Rates): RatesEntity {
return {
employeeId: model.employeeId,
clientId: model.clientId,
rateFull: model.rateFull,
rateQuarter: model.rateQuarter,
rateLine: model.rateLine,
rateWord: model.rateWord,
createdAt: model.createdAt,
updatedAt: model.updatedAt,
};
}
public to(entity: RatesEntity): Rates {
return new Rates({
...entity,
});
}
}
澄清一下,您正在尝试 运行 update
使用 prisma 查询来自 Rates
table/model 的单个记录。为此,您的 where
条件出现错误。
解决方案
尝试按如下方式更改 update
查询:
const entity = await this.db.rates.update({
where: {
clientId_employeeId: {
employeeId,
clientId,
},
},
data: {
...data,
},
});
这是 Prisma 在为具有复合 ID 或唯一标识符(由模型的多个字段组成的 ID 或唯一标识符)的模型指定 where 条件时使用的语法。您可以在 Prisma 文档中 CRUD Reference Guide 的 通过化合物 ID 或化合物唯一标识符获取记录 小节中阅读更多内容。