0

我正在使用 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)

我错过了什么?

谢谢!

4

1 回答 1

0

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

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

于 2009-05-27T06:24:05.617 回答