1

我發現這個問題,這是類似的,我想解決一個問題:如何管理結構相同的多個表(終極版)

How to manage multiple tables with the same structure

然而,由於該craptastical性質VB,該解決方案並不真正的工作。它特別不起作用,因爲VB.NET要求明確聲明接口中的每個方法/屬性的實現。

至於說我真的想解決這個問題,那就是:

  • 我在數據庫中有許多查詢/域表,所有具有相同的結構,這些
  • 的項目表通常用於下拉列表中的接口
  • 我想避免一堆樣板庫方法來檢索這些表的內容(當你有40桌每桌一個方法真的很爛)
  • 不是使用一個真正的查找表反模式,這不是一個選項

有沒有人有另一種解決方案,這工作在VB中工作?

回答

0

這裏是我們最後使用的代碼:

Public Function GetDomainTableList(tableName As String) As IEnumerable(Of Object) 

    Dim table = CType(GetType(FECEntities).GetProperty(tableName).GetValue(DB, Nothing), IEnumerable(Of Object)) 

    Dim dt = From r In table 
      Select r 

    Return dt.ToList() 

End Function 

我原本以爲這不會對我們的工作,因爲我一直想把項目中的每個對象返回到我寫一個DomainTableItem類。但後來我意識到SelectList構造函數並不關心它所接受的對象的類型。您只需傳入一個包含屬性名稱的String,並使用反射來提取該值。

因此,所有的事情都可以用這種方式實現,我避免每個域/查找表寫一個方法。

0

通用儲存庫應該在這種情況下工作。有許多可用的online,或者您可以爲查找表編寫更簡單的一個。