CSLA 3.6 - 在配置文件中找不到数据库名称

时间:2009-04-02 03:40:24

标签: csla

我正在使用CSLA 3.6

我一直收到错误:

DataPortal.Fetch失败(在配置文件(AdventureWorksLT)中找不到数据库名称)

我的Dataportal_Fetch代码如下所示:

Private Overloads Sub DataPortal_Fetch(ByVal criteria As SingleCriteria(Of Customer, Integer))
    Using ctx = ContextManager(Of DalLinq.AdventureWorksDataContext).GetManager(DalLinq.Database.AdventureWorksLTConnectionString)
        Dim data = (From p In ctx.DataContext.Customers Where p.CustomerID = criteria.Value Select p).Single
        LoadProperty(Of Integer)(CustomerIdProperty, data.CustomerID)
        LoadProperty(Of String)(CompanyNameProperty, data.CompanyName)
    End Using
End Sub

我的Database.vb文件如下所示:

Public Class Database

    Public Const AdventureWorksLTConnectionString As String = "AdventureWorksLT"

End Class

我的App.Config文件包含以下内容(替换<和>字符带(和)由于stackoverflow:

(connectionStrings)
    (add name="AdventureWorksLT" connectionString="Data Source=(local);Initial Catalog=AdventureWorksLT;User Id=AdvWorks;Password=UserPW;"
            providerName="System.Data.SqlClient" /)
   (/connectionStrings)

我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

确保您使用的是正确的app.config文件。 ConfigurationManager查看当前正在运行的项目(即您的测试项目和/或您的Windows窗体/控制台应用程序)。

ContextManager的默认行为是使用ConfigurationManager查找命名连接字符串,除非您将true传递给ContextManager中的第二个参数,然后它将只使用提供的字符串作为连接字符串。