edis0n0
V2EX  ›  .NET

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

  •  
  •   edis0n0 · Mar 7, 2023 · 3250 views
    This topic created in 1165 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
        1
    iold  
       Mar 7, 2023 via iPhone
    AutoMapper
    tcp
        2
    tcp  
       Mar 7, 2023 via iPhone
    如果 Model 不复杂,可以用匿名对象
    DTCPSS
        3
    DTCPSS  
       Mar 7, 2023
    DTO 其实适合 record
    jmjgeminix
        4
    jmjgeminix  
       Mar 7, 2023
    AutoMapper 或者 Mapster
    oppoic
        5
    oppoic  
       Mar 7, 2023
    就用 UserDTO ,Group 字段后端查询赋值
    deali
        6
    deali  
       Mar 7, 2023
    我用的也是 AutoMapper
    thtznet
        7
    thtznet  
       Mar 7, 2023
    Mapster 映射,但是我仍然觉得 JAVA 或者 C# 采用 class 做 DTO 的方式仍然不够优雅,class 的语法局限性,所以我现在尽可能使用 gRPC 来做接口,绕开 class 的 DTO 。
    PerFectTime
        8
    PerFectTime  
       Mar 7, 2023
    Mapster
    ColinZeb
        9
    ColinZeb  
       Mar 7, 2023
    @thtznet #7 grpc 不是要建 grpc 模型吗,区别是什么
    thtznet
        10
    thtznet  
       Mar 8, 2023
    @ColinZeb grpc 模型 没有语言特性,一处编写,处处拷贝。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1394 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 555ms · UTC 17:07 · PVG 01:07 · LAX 10:07 · JFK 13:07
    ♥ Do have faith in what you're doing.