2017-08-30 229 views
0

我想了解更多關於在使用數據庫時使用類的正確方法。這裏是我認爲可以的例子(使用C#和SQL Server,如果好奇的話)類和數據庫的最佳實踐

我有一個名爲「Features」的表,其中的大多數列包含ID(外鍵)。要將該表加載到應用程序中,我創建了一個「DBFeatures」類來保存所有列。接下來,我應該有一個常規的「功能」類,它具有「DBFeatures」類中所有屬性的實際值。 「功能」類將具有一種方法,該方法打開與數據庫的連接以獲取具有給定ID的所有正確值。然後可以按原樣使用「特徵」類。

同樣會反過來,我創建一個「Features」對象,然後它將它轉換爲一個「DBFeatures」類,在插入時傳遞給數據庫。

這是正確的方式去做這件事嗎?還有什麼其他選擇會更好?唯一的其他選擇是隻有一個類「DBFeature」類,並且當我創建該類的對象時,每次設置或獲取屬性時,都必須通過提供ID來訪問數據庫以獲取值。

編輯

我將使用表格的數據。大部分表格都是隻讀的,它們將被存儲到一個對象列表中,然後可以與控件一起使用(例如組合框的數據源)。此外,我希望能夠將用戶輸入加載到將輸出到數據庫中的表的類中。

回答

1

關於如何做某事的很多計劃取決於你沒有提供的實現。你打算怎麼處理你的物體?是否需要報告?你需要操縱這些值嗎?

我打算假設你將要操縱數據,在這種情況下,你應該有一個類打開數據庫並將其加載到表示它的類中。

該類可以具有與列對應的屬性,然後可以使用該類的列表來表示行。

這只是一個例子,如何做到這一點,但不知道你的意圖是什麼,並有更多的細節不可能說。

+0

我將使用表單的數據。大部分表格都是隻讀的,它們將被存儲到一個對象列表中,然後可以與控件一起使用(例如組合框的數據源)。此外,我希望能夠將用戶輸入加載到將輸出到數據庫中的表的類中。 – jediderek

+0

另外是的,我知道我將有一個該類的對象列表中的每一行 – jediderek

+0

好吧,如果你使用精巧爲什麼不使用這個好?我認爲如果你做你認爲最好的事情,然後在Code Review上發佈相同的問題,你會得到更多的里程。如果沒有完整的圖片,就很難給出這樣的問題的建議。 –

1

它看起來像你需要像實體框架的ORM。

+0

我正在使用Dapper作爲我的ORM,但是這僅用於將表存儲到類中,並將表類存儲到我認爲的表中。 – jediderek

+0

我並不熟悉dapper,但我認爲它可以做得和其他ORM差不多。我認爲你不需要「功能」和「DBFeatures」類。你只需要一個。 – Valerii