0

我试图制作我的第一个 3 层应用程序。在此过程中,我遇到了一个尚未找到最佳解决方案的问题。基本上我所有的对象都使用一个 IFillable 接口,它强制实现一个子,如下所示

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

然后,这个 sub 期望来自 datareader 的 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

大多数情况下,这种模式似乎是有道理的。但是我的问题是,假设我想为 Stock 实现一个名为 StockBarcodeList 的属性。在上述模式下,无论我以何种方式实现此属性,我都需要将连接字符串传递给它,这显然会破坏我对层分离的尝试。

有没有人对我如何解决这个问题有任何建议,或者我是否以完全错误的方式解决这个问题?有人对我如何改进我的实施有任何建议吗?但是请注意,我故意避免以任何形式使用数据集。

4

2 回答 2

1

使用 app.config 文件作为连接字符串。

于 2010-04-12T15:40:49.887 回答
0

你通过有什么特别的原因ConnectionString吗?这对我来说似乎是一个配置值?因此,使用常量(或Config单例)之类的东西可能是一个更好的主意。

于 2010-04-12T15:40:33.930 回答