Skip to content

$Dto.create

$Dto.create用于标注 Create 参数

参数

名称描述
columns需要创建的字段列表
include静态关系
with动态关系

1. 一般用法

typescript
$Dto.create(() => ModelOrder);
typescript
$Dto.create(() => ModelOrder, { columns: [ 'orderNo', 'remark'] });

2. 静态关系

以 Order/Product 为例,演示1:n关系

Model关系定义

先在 Model Order 中定义与 Model Product 的1:n关系

typescript
@Model({
  entity: EntityOrder,
  relations: {
    products: $relation.hasMany(() => ModelProduct, 'orderId', {
      columns: ['id', 'name', 'price', 'quantity', 'amount'],
    }),
  },
})
class ModelOrder {}

动态推断与生成DTO

typescript
$Dto.create(() => ModelOrder, {
  columns: [ 'orderNo', 'remark'],
  include: {
    products: true,
  },
});

3. 动态关系

typescript
$Dto.create(() => ModelOrder, {
  columns: [ 'orderNo', 'remark'],
  with: {
    products: $relationDynamic.hasMany(() => ModelProduct, 'orderId', {
      columns: [ 'name', 'price', 'quantity', 'amount'],
    }),
  },
});

基于 MIT 许可发布