有没有办法从数据库表动态填充枚举?
我想创建一个枚举来选择可能性,但这些可能性可能会改变。因此,为了能够轻松进行更改,我希望将这些可能性存储在数据库表中并通过数据库表进行管理。有没有一种方法可以从数据库表动态填充枚举? 谢谢你,多夫。
I want to create an enum for choosing possibilities but those possibilities may change. So in order to be able to make changes easily I want those possibilities to be stored in and managed thru a data base table. Is there a way of filling an enum dynamically from a data base table?
Thank you, Dov.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不知道这种可能性。但是,为什么不使用 字典 ?
I am not aware of this possibility. However, why dont you use Dictionary ??
您的意思是您希望枚举自动更改(添加/删除枚举内容)以反映数据库表中的值吗?如果是这样,不,那是不可能的。枚举只是一组命名的整数常量。您必须手动更改枚举并重新编译程序集。
Do you mean you want the enum to automatically change (add/remove enum contants) to reflect the values in your database table? If so, no, that is not possible. Enumerations are just a set of named integer constants. You have to change the enum manually and recompile your assembly.
理论上您有两个选择:
使用
CodeDom
构造枚举:http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx
将枚举源代码写入文本文件并将其动态编译为程序集。
然而,正如其他人所说,如果它动态变化,那么枚举可能不是您的正确选择。
Theoretically you have two options:
Use
CodeDom
to construct the enum :http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx
Write the enum source code to a textfile and compile it dynamicaly to an assembly.
Nevertheless, as others say, if it changes dynamically, probably an enum is not the right choice for you.
尽管可以使用 EnumBuilder 来自数据库值,它在编译时没有任何价值。
有关替代方案,请参阅这篇文章。
Although it would be possible to create an
Enum
at runtime using EnumBuilder from your database values, it would not be of any value at compile time.See this article on an alternative.