我正在使用Entity Framework Code和Code First开发方法以及PostgreSQL数据库。我的一个类有一个枚举属性,这非常好用。然而,当我查看数据库时,我注意到在数据库中,枚举实际上被存储为整数,而不是我所期望的枚举类型。因此,如果您直接从数据库查询数据,您只会看到整数,而不知道它代表什么意思。我已经在这里和这里看到了可以使用查找表或将枚举类型存储为字符串来规避此问题,但在我看来这似乎有点不自然,因为您也可以将枚举类型存储在数据库中。那么,有没有办法将枚举类型存储为枚举数据类型在数据库中?如果没有,为什么呢?
您可以参考https://www.postgresql.org/docs/9.1/datatype-enum.html中关于PostgreSQL数据库中枚举类型的说明。对于EF Core,您可以使用modelBuilder.HasPostgresEnum("schema", "typename", new[] { "enum1", "enum2" })来告诉EF Core如何处理枚举类型。有关相关信息,请参考https://www.npgsql.org/efcore/mapping/enum.html?tabs=tabid-1。请注意保留HTML标签。