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

2023-03-07 02:51:35 +08:00
 edis0n0
例如要一个用于 API 输入的 UserDTO ,除了 Group 这个根据外键关联的属性外都要 api 输入,正常的做法是复制一个 Model 出来把多余的删掉,然后还要写一个 Convert 方法把属性逐个复制以从 DTO 转换成 User Model ,可维护性很差,改一个属性要改 3 遍。
2483 次点击
所在节点    .NET
10 条回复
iold
2023-03-07 05:52:30 +08:00
AutoMapper
tcp
2023-03-07 08:41:06 +08:00
如果 Model 不复杂,可以用匿名对象
DTCPSS
2023-03-07 08:44:48 +08:00
DTO 其实适合 record
jmjgeminix
2023-03-07 08:47:14 +08:00
AutoMapper 或者 Mapster
oppoic
2023-03-07 09:34:40 +08:00
就用 UserDTO ,Group 字段后端查询赋值
deali
2023-03-07 09:51:46 +08:00
我用的也是 AutoMapper
thtznet
2023-03-07 11:24:12 +08:00
Mapster 映射,但是我仍然觉得 JAVA 或者 C# 采用 class 做 DTO 的方式仍然不够优雅,class 的语法局限性,所以我现在尽可能使用 gRPC 来做接口,绕开 class 的 DTO 。
PerFectTime
2023-03-07 14:58:23 +08:00
Mapster
ColinZeb
2023-03-07 16:08:22 +08:00
@thtznet #7 grpc 不是要建 grpc 模型吗,区别是什么
thtznet
2023-03-08 18:29:39 +08:00
@ColinZeb grpc 模型 没有语言特性,一处编写,处处拷贝。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/921765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX