我有一个像这样的枚举。
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/