我可以创建一个拥有超过500个成员的枚举吗?

ahm*_*der 2 c# enums asp.net-core

我正在创建一个数据库系统,其中有些表有一些非用户派生的数据,它们将被应用程序主要用于查找.但是对于数据库性能和查询优化,我决定使用枚举来进行这些查找,并将它们的整数存储在表中而不是整个单词中.

我想做一个叫做疾病的枚举,它们有500种.

那么,我可以在C#(.net核心)中创建一个包含500个成员的枚举,如果没有,我该如何实现这样的功能呢?另外,有没有办法在枚举中本地化值?

我使用枚举,因为当我在数据库中进行查询时,它们将为我节省加入时间.如果我没有使用枚举,我将不得不查询一个表,然后与另外两个具有查找数据的表进行2次连接.如果我用enum制作它们,我只需要保存在第一个表中的数字,并在应用程序中获取其字符串,每次获取数据时,我将保存查询使用2个连接.

Hay*_*tam 6

我可以在C#(.net)中创建一个包含500个成员的枚举

当然,如果你愿意的话.
但我认为这是一个坏主意.想象一下,如果其他人想要使用您的数据库,他们就必须拥有相同的副本enum,这意味着只要其他人需要它,我就必须维护同一个列表的2个(或更多)副本.不要以为有人想这样做.

数据库中的500行就像什么都没有,使它成为一个enum不会帮助你的东西(至少不是你能注意到的东西),而只是将它们存储在一个表中,每个人都很高兴.

有没有办法在枚举中本地化值

不,不是开箱即用的.您必须为此创建自己的解决方案.这取决于您的本地化存储的位置和方式.

  • 你是对的,一个smallint字段小于2个字段(Id,字符串),但你必须考虑到这一点.您的应用程序是唯一可以使用数据库的东西吗?枚举是否会经常更改(每次更新应用程序)? (3认同)
  • 然后你肯定想要一张桌子,你的桌子甚至可以包含本地化的疾病名称和东西. (2认同)