Azi*_*zim 13 .net data-structures
在我的数据库中,我有表定义类型的表
表:出版物类型
ID | Type ---------- 1 | Article 2 | Abstract 3 | Book ....
通过ID键将其与具有字段TypeID的发布表相关联.
然后我创建一个PublicationTable数据表我的.NET应用程序,我想根据发布类型进行筛选.例如,以下函数为我提供了特定作者和出版物类型的出版物数量.
Public Function countPublications(ByVal authorID As Integer, _
ByVal publicationType As Integer) As Integer
Dim authPubs As New PublicationsDataSet.tblPublicationsDataTable
authPubs = Me.getAuthorsPublications(authorID)
Dim dv As New DataView(authPubs)
dv.RowFilter = "status='published' AND type='" + _
publicationType.ToString + "'"
Return dv.Count
End Function
要调用此函数来获取特定类型作者的文章计数,我可以
用两个整数调用函数
countPublications(authorID,1)
设置枚举,以便我可以写
countPublications(authorID,pubType.Article)
要么
以某种方式使用发布类型表来过滤发布数据集,但我还没有理解如何做到这一点.
我应该考虑哪些其他方法.
谢谢
如果发布类型基本上是静态的,枚举就可以了
嵌入之间几乎没有什么区别
inner join lookuptable lt on lt.id = (int)myenum.sometype
Run Code Online (Sandbox Code Playgroud)
在查询和添加
inner join lookuptable lt on lt.name = "somehardcodeddescription"
Run Code Online (Sandbox Code Playgroud)
它们都是嵌入式常量,前者只有一个明确定义的类型
或者你可以使用
inner join lookuptable lt on lt.name = myenum.sometype.ToString
Run Code Online (Sandbox Code Playgroud)
我更喜欢前者
另一方面,如果在部署代码之后可能会添加新的查找类型,那么枚举很快就会过时;
但如果有代码需要的核心静态枚举值集,其余的无关紧要,那么前一种解决方案仍然没问题
像往常一样,"它取决于";-)
在以前的生活中保持了这种事情,我同意史蒂文的观点,这enum是非常合理的.您的代码是清晰的,enum如果添加数据类型,则表示您只需要更新单个文件.
我还建议对其进行评论enum,明确表示值必须与Publication Types数据库中表格中的值相匹配.
好的问题,顺便说一下!+1用于如此清楚地解释问题并花时间在发布之前集体讨论解决方案.
| 归档时间: |
|
| 查看次数: |
1787 次 |
| 最近记录: |