0

最初の3層アプリケーションを作成しようとしました。その過程で私は1つの問題に遭遇しましたが、まだ最適な解決策を見つけることができていません。基本的に、私のすべてのオブジェクトは、次のようにサブの実装を強制するIFillableインターフェイスを使用します

Public Sub Fill(ByVal Datareader As Data.IDataReader) Implements IFillable.Fill

このサブは、データリーダーからのIDがオブジェクト自体のプロパティと同一になることを期待します。

Me.m_StockID = Datareader.GetGuid(Datareader.GetOrdinal("StockID"))

結局、私はこのようなデータレイヤーになります。

Public Shared Function GetStockByID(ByVal ConnectionString As String, ByVal StockID As Guid) As Stock
        Dim res As New Stock
        Using sqlConn As New SqlConnection(ConnectionString)
            sqlConn.Open()
            res.Fill(StockDataLayer.GetStockByIDQuery(sqlConn, StockID))
        End Using
        Return res
 End Function

ほとんどの場合、このパターンは理にかなっているようです。ただし、私の問題は、StockBarcodeListというStockのプロパティを実装したいとします。上記のパターンでは、このプロパティを実装する方法に関係なく、接続文字列を渡す必要があります。これにより、レイヤー分離の試みが明らかに失敗します。

私がこの問題をどのように解決できるかについて誰かが何か提案がありますか、それとも私はこれを完全に間違った方法で行っていますか?誰かが私の実装を改善する方法について何か提案がありますか?ただし、データセットをいかなる形式でも使用しないように意図的に試みていることに注意してください。

4

2 に答える 2

1

接続文字列にはapp.configファイルを使用します。

于 2010-04-12T15:40:49.887 に答える
0

合格する特別な理由はありますConnectionStringか?それは私には構成値のように見えますか?したがって、定数(またはConfigシングルトン)のようなものを使用することをお勧めします。

于 2010-04-12T15:40:33.930 に答える