$Dto.get 
$Dto.get is used to annotate the return result
Parameters 
| Name | Description | 
|---|---|
| columns | List of fields to be queried | 
| include | Static relations | 
| with | Dynamic relations | 
1. General Usage 
typescript
$Dto.get(() => ModelOrder);typescript
$Dto.get(() => ModelOrder, { columns: ['id', 'orderNo', 'remark'] });2. Static Relation 
Take Order/Product as an example to demonstrate the 1:n relation
Model relation definition 
First define a 1:n relation between Model Order and Model Product
typescript
@Model({
  entity: EntityOrder,
  relations: {
    products: $relation.hasMany(() => ModelProduct, 'orderId', {
      columns: ['id', 'name', 'price', 'quantity', 'amount'],
    }),
  },
})
class ModelOrder {}Dynamically inferring and generating DTO 
typescript
$Dto.get(() => ModelOrder, {
  include: {
    products: true,
  },
});3. Dynamic Relation 
typescript
$Dto.get(() => ModelOrder, {
  with: {
    products: $relationDynamic.hasMany(() => ModelProduct, 'orderId', {
      columns: ['id', 'name', 'price', 'quantity', 'amount'],
    }),
  },
});4. Aggregation based on static relation 
Take Order/Product as an example to demonstrate the 1:n relation
Model relation definition 
First define a 1:n relation between Model OrderStats and Model Product
typescript
@Model({
  entity: EntityOrder,
  relations: {
    productStats: $relation.hasMany(() => ModelProduct, 'orderId', {
      aggrs: {
        count: '*',
        sum: 'amount',
      },
    }),
  },
})
export class ModelOrderStats {}Dynamically inferring and generating DTO 
typescript
$Dto.get(() => ModelOrderStats, {
  include: {
    productStats: true,
  },
});5. Aggregation based on dynamic relation 
typescript
$Dto.get(() => ModelOrder, {
  with: {
    productStats: $relationDynamic.hasMany(() => ModelProduct, 'orderId', {
      aggrs: {
        count: '*',
        sum: 'amount',
      },
    }),
  },
});6. Grouping based on static relation 
Take Order/Product as an example to demonstrate the 1:n relation
Model relation definition 
First define a 1:n relation between Model OrderStats and Model Product
typescript
@Model({
  entity: EntityOrder,
  relations: {
    productsGroups: $relation.hasMany(() => ModelProduct, 'orderId', {
      groups: 'id',
      aggrs: {
        count: '*',
        sum: 'amount',
      },
    }),
  },
})
export class ModelOrderStats {}Dynamically inferring and generating DTO 
typescript
$Dto.get(() => ModelOrderStats, {
  include: {
    productsGroups: true,
  },
});7. Grouping based on dynamic relation 
typescript
$Dto.get(() => ModelOrder, {
  with: {
    productsGroups: $relationDynamic.hasMany(() => ModelProduct, 'orderId', {
      groups: 'id',
      aggrs: {
        count: '*',
        sum: 'amount',
      },
    }),
  },
});