c# - 将枚举存储到数据库的平滑方法

标签 c# sql database enums sql-server-2014

我有一个像这样的枚举

public enum TimeFrame
{
  Morning = 1,
  Afternoon,
  Evening
}

当存储包含 TimeFrame 类型属性的对象时,会使用 switch 语句进行转换,使每个值明确为 1、2 和 3。命令创建的字符串被替换为例如Evening 到 3。从 DB 获取时也是如此 - 如果值为 1,则它被手动显式映射到 Morning

是否有一种平滑的方式来“按原样”存储枚举的值?还是我们应该出于某种原因避免这样做?

我已经尝试过直接的方法,但这只会一直提供回退值...

TimeFrame = row["TimeFrame"] as TimeFrame? ?? TimeFrame.Morning

最佳答案

您可以将枚举转换为整数,反之亦然,这非常快。您还可以在枚举和字符串之间进行转换,需要更多的代码、时间和存储空间。然后,您可以在数据库中简单地存储整数或字符串。

关于c# - 将枚举存储到数据库的平滑方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732952/

相关文章:

C#静态构造函数设计问题——需要指定参数

c# - 员工时钟计算

mysql - sql count (including null) from table where 两个条件

sql - 仅在更新的行上更新后的 PostgreSQL 触发器

MySQL 将 varchar 排序为数字问题

c# - Wpf 样式未完全应用于 ContextMenu

c# - Rijndael 加密在 Windows Server 2012 上不起作用

mysql - 将字符串中的第一个字符与数字或非标准字符匹配

数据库设计 - 外键与主键相同?

php - 尝试将字段插入到数据库表中,但出现错误 "Object Not Found"