.net - 我应该使用枚举还是查询数据库中的表?

标签 .net data-structures

在我的数据库中,我有定义类型的表,例如

表:出版物类型

身份证 |类型
----------
1 |文章
2 |抽象的
3 |书
……


它通过 ID 键与具有字段 TypeID 的发布表相关联。

然后,我在我的 .NET 应用程序中创建了一个 PublicationTable 数据表,我想根据发布类型对其进行过滤。例如,以下函数为我提供了特定作者和出版物类型的出版物数量。

公共(public)函数 countPublications(ByVal authorID As Integer, _
ByVal PublicationType As Integer) As Integer

将 authPubs 调暗为新 PublicationsDataSet.tblPublicationsDataTable
authPubs = Me.getAuthorsPublications(authorID)

将 dv 调暗为新数据 View (authPubs)
dv.RowFilter = "status='已发布' AND type='"+ _
发布类型.ToString + "'"

返回 dv.Count

结束功能

要调用此函数以获取特定类型作者的文章计数,我可以

  • 用两个整数调用函数

    countPublications(authorID, 1)
  • 设置一个枚举,以便我可以编写

    countPublications(authorID, pubType.Article)

  • 以某种方式使用发布类型表来过滤发布数据集,但我不知道如何做到这一点。

  • 我应该考虑哪些其他方法。

    谢谢

    最佳答案

    如果发布类型本质上是静态的,那么枚举就可以了

    可以说嵌入之间几乎没有区别

    inner join lookuptable lt on lt.id = (int)myenum.sometype 
    

    在查询中并添加
    inner join lookuptable lt on lt.name = "somehardcodeddescription"
    

    它们都是嵌入式常量,前者只是在它后面有一个定义明确的类型

    或者你可以使用
    inner join lookuptable lt on lt.name = myenum.sometype.ToString
    

    我更喜欢前者

    另一方面,如果在部署代码后可能会添加新的查找类型,那么枚举很快就会过时;

    但是如果有代码需要的核心静态枚举值集,其余的无关紧要,那么前一个解决方案仍然可以

    像往常一样,“这取决于”;-)

    关于.net - 我应该使用枚举还是查询数据库中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252202/

    相关文章:

    multithreading - 字符串与整数作为 golang 中内存利用率的映射键?

    C 数据结构理论与技术 - 同栈中的整数和字符

    algorithm - 用键存储值然后搜索最聪明的方法,算法

    .net - 在我自己的代码中抛出 AggregateException

    data-structures - 用于有效返回哈希表(映射、字典)的前 K 个条目的数据结构

    c# - C# 对 native 互操作的限制

    c# - Entity Framework Core 不返回刷新数据

    c - C链表结构中的未知类型名称

    .net - 如何在 Azure Pipeline 期间创建包含 build.* 变量的文件

    c# - TPL 数据流 SendAsync 结果