C# Entity Framework Core使用本机枚举数据类型存储枚举。

3
我正在使用Entity Framework Code和Code First开发方法以及PostgreSQL数据库。我的一个类有一个枚举属性,这非常好用。
然而,当我查看数据库时,我注意到在数据库中,枚举实际上被存储为整数,而不是我所期望的枚举类型。因此,如果您直接从数据库查询数据,您只会看到整数,而不知道它代表什么意思。
我已经在这里这里看到了可以使用查找表或将枚举类型存储为字符串来规避此问题,但在我看来这似乎有点不自然,因为您也可以将枚举类型存储在数据库中。
那么,有没有办法将枚举类型存储为枚举数据类型在数据库中?如果没有,为什么呢?

你可以在数据库中选择int和string之间。https://medium.com/agilix/entity-framework-core-enums-ee0f8f4063f2 - Roar S.
1
@RoarS. 是的,但我找不到任何地方说明数据库中是否可以将枚举存储为枚举数据类型。我想知道这是否可能。 - Kippi
我认为它不被支持,因为枚举数据类型是特定于供应商的。 - Gert Arnold
我和 @GertArnold 的看法一致;我从事这个行业已经25年了,之前从未见过像枚举类型这样的东西出现在数据库中 :-) - Roar S.
“该枚举实际上被存储为整数,”- 啊,枚举本身的数据类型是整数风格的结构体。标准枚举实际上是一个整数,除非你将其重新定义为字节或长整型等其他数据类型。 - TomTom
1
@TomTom 是的,但我不想在我的数据库中存储随机整数。我想将枚举存储在数据库中(作为 PostgreSQL 枚举),然后在我的数据库表中有一个枚举列引用先前声明的枚举。 - Kippi
1个回答

2

1
正是我所需要的。谢谢! - Kippi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接