【问题标题】:Use Enum property in WebAPI method input Dto在 WebAPI 方法输入 Dto 中使用 Enum 属性
【发布时间】:2020-06-23 09:22:19
【问题描述】:

假设我们有一个包含方法 GetCustomers 的 WebAPI。此方法接受输入 Dto。 Dto 的属性之一是 enum CustomerType

我向这个 WebAPI 方法发出了一个 HttpRequest,并为属性 CustomerType

传递了一个整数值

代码运行良好,但我的问题是,是否有理由将属性 CustomerType 定义为 CustomerTypeId 类型为 int 而不是将其定义为 enum。知道我可以访问 Enum,因为它在一个共享项目中。

是否存在我们应该在 Dto 中使用值或枚举的最佳实践?

【问题讨论】:

  • 您的领域的具体内容是什么?如果只需要该字段显示int值,则不需要使用enum类型绑定。 Enum 是一种值类型数据类型,用于声明命名整数常量的列表。所以,如果这个字段需要绑定int值对应的内容,那么还是需要使用enum来实现的。

标签: c# enums asp.net-core-webapi dto


【解决方案1】:

在这种情况下,枚举绝对没问题,但如果您仅使用此属性来存储一个值并且您不打算在任何程序逻辑中使用它,那么 int 可能就足够了。

您何时会考虑在枚举上使用 int 属性?例如,当值来自不同的来源并且您不能 100% 确定可能的值时。

int 可以更好地工作的另一种情况是 CustomerType 将附加一些附加数据。在这种情况下,带有元数据的值通常存储在数据库中。即使在这里 enum 也可以像 int 一样工作,但两个地方应该保持同步以确保 enum 值始终指向数据库中的正确值。当代码中的名称使用枚举值时,这一点非常重要,因为它有助于避免烦人且通常难以发现的错误。

【讨论】:

    猜你喜欢
    • 2016-02-12
    • 2022-11-18
    • 2011-03-25
    • 2021-07-14
    • 2015-05-07
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 2017-03-26
    相关资源
    最近更新 更多