在我的数据库中,我有一些定义类型的表
表:出版类型
ID | Type ---------- 1 | Article 2 | Abstract 3 | Book ....
通过ID键与具有字段TypeID的发布表相关联.
然后,我创建一个PublishTable数据表我的.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
inner join lookuptable lt on lt.name = "somehardcodeddescription"
它们都是嵌入式常量,前者只是一个明确的类型
你可以交替使用
inner join lookuptable lt on lt.name = myenum.sometype.ToString
我更喜欢前者
另一方面,如果在部署代码之后可能会添加新的查找类型,那么枚举将很快过时;
但是如果存在代码需要的核心集静态枚举值,而其余的则不重要,那么以前的解决方案仍然很好
像往常一样,“依赖”;-)