在 WebAPI 方法输入 Dto 中使用 Enum 属性

Use Enum property in WebAPI method input Dto

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

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

传递了一个整数值

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

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

Enum 在这种情况下绝对没问题,但如果你使用这个 属性 只是为了存储一个值,而不打算在任何程序逻辑中使用它,那么 int 就足够了。

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

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