处理ASP.NET应用程序中的数据库查找值

时间:2010-01-20 01:28:03

标签: asp.net database

我工作的几乎所有应用程序都涉及一些查找值。例如,很多时候需要在WebForm上显示语言列表(英语,法语等)供用户选择。

此类查找值的公共数据结构包括整数Id和字符串作为名称。由于这些查找值经常使用,因此不太可能更改。大多数时候,我只是在C#中定义一个全局枚举,而不是从数据库中获取它们,而不是从数据库中获取它们

enum Language : int { English = 1, French = 2}

我多年来一直在处理这样的查找值。我知道这可能不是处理它们的最佳方式。例如,每次向系统添加新语言时,都需要记住更新该枚举。

我想这是一个非常常见的场景,只是想知道你们如何处理这种类型的查找值。

谢谢,

3 个答案:

答案 0 :(得分:1)

我通常把它们放在数据库中,因为你永远不知道他们是否以及什么时候需要改变。有些时候 - 按设计 - 我知道列表不会改变,对于那些,我将使用枚举。在所有其他情况下,我将使用数据库表。

答案 1 :(得分:0)

根据数据要求,我通常会在经常单独加载的配置文件中处理类似小的查找,以作为应用程序的所有实例的应用程序变量应用。当应用程序启动或回收时,会查找一次数据,然后在数据耗尽之前保持有用。

虽然,我有很多类似性质的中间数据需要定期维护。将它放入数据库更容易,因为至少可以构建一个小型维护应用程序来处理它。如果将它们放入枚举中,则必须重新编译并重新部署。

我遇到了与资源文件类似的问题。由于资源文件已编译,因此需要进行另一次重新部署。

答案 2 :(得分:0)

您可以从T4模板中受益。我还没有使用过这些,因为我们没有满足需求的要求,但我最终想要使用它们。

这是一篇很棒的文章,用于从数据库表生成枚举(代码很难在页面上阅读,文章末尾有一个指向源代码的链接): http://www.thecodejunkie.com/2008/11/generate-enums-from-database-using-text.html

此外,Scott Hanselman在他的博客上有list个很棒的T4模板/文章。

T4 Templates on MSDN