質問

私は私の最初の3層アプリケーションを作成しようと試みてきました。プロセスでは、私は私がのために最適なソリューションを見つけるために、まだ午前一つの問題に遭遇してきました。

を次のように基本的にすべての私のオブジェクトは、サブの実装を強制IFillableインタフェースを使用
Public Sub Fill(ByVal Datareader As Data.IDataReader) Implements IFillable.Fill

この部分は、次に期待のDataReaderからのIdsは以下のようなオブジェクトのプロパティと同じになります。

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

最後に、私は次のようになりますdatalayerで終わるます。

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と呼ばれる株式のプロパティを実装したいと言うことができます。上記パターンの上の下で、私は、このプロパティを実装する任意の方法は、私は明らかに層分離での私の試みを壊すことできるように、ConnectionStringを渡す必要があります。

ないの誰もが、私はこの問題を解決することができるかもしれない方法上の任意の提案を持っているか、私はこれについて完全に間違った道を進んでいますか?誰もが、私は私の実装を向上させるかもしれない方法上の任意の提案を持っていますか?私は意図的に任意の形式でデータセットを使用しないようにしようとしていますが注意してください。

役に立ちましたか?

解決

あなたがすべてでConnectionStringを渡す特別な理由はありますか?それは私には、設定値のように思えますか?定数(またはConfigシングルトン)のようなものを使用することは良いアイデアかもしれませんので。

他のヒント

を使用する接続文字列のためのapp.configファイルます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top