edis0n0
V2EX  ›  .NET

EF Core 从 Model 创建 DTO 最优雅的方式是什么?

  •  
  •   edis0n0 · Mar 7, 2023 · 3762 views
    This topic created in 1349 days ago, the information mentioned may be changed or developed.
    例如要一个用于 API 输入的 UserDTO ,除了 Group 这个根据外键关联的属性外都要 api 输入,正常的做法是复制一个 Model 出来把多余的删掉,然后还要写一个 Convert 方法把属性逐个复制以从 DTO 转换成 User Model ,可维护性很差,改一个属性要改 3 遍。
    10 replies  •  2023-03-08 18:29:39 +08:00
    iold
    iold
    Mar 7, 2023 via iPhone
    1
    AutoMapper
    tcp
    tcp
    Mar 7, 2023 via iPhone
    2
    如果 Model 不复杂,可以用匿名对象
    DTCPSS
    DTCPSS
    Mar 7, 2023
    3
    DTO 其实适合 record
    jmjgeminix
    jmjgeminix
    Mar 7, 2023
    4
    AutoMapper 或者 Mapster
    oppoic
    oppoic
    Mar 7, 2023
    5
    就用 UserDTO ,Group 字段后端查询赋值
    deali
    deali
    Mar 7, 2023
    6
    我用的也是 AutoMapper
    thtznet
    thtznet
    Mar 7, 2023
    7
    Mapster 映射,但是我仍然觉得 JAVA 或者 C# 采用 class 做 DTO 的方式仍然不够优雅,class 的语法局限性,所以我现在尽可能使用 gRPC 来做接口,绕开 class 的 DTO 。
    PerFectTime
    PerFectTime
    Mar 7, 2023
    8
    Mapster
    ColinZeb
    ColinZeb
    Mar 7, 2023
    9
    @thtznet #7 grpc 不是要建 grpc 模型吗,区别是什么
    thtznet
    thtznet
    Mar 8, 2023
    10
    @ColinZeb grpc 模型 没有语言特性,一处编写,处处拷贝。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1829 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 09:21 · PVG 17:21 · LAX 01:21 · JFK 04:21
    ♥ Do have faith in what you're doing.