CSLA 3.6 - имя базы данных не найдено в конфигурационном файле - PullRequest
0 голосов
/ 02 апреля 2009

Я использую 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 содержит следующее (заменяет символ <и> символом (и) из-за стекопотока:

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

Чего мне не хватает?

Спасибо!

1 Ответ

0 голосов
/ 27 мая 2009

Убедитесь, что вы используете правильный файл app.config. ConfigurationManager просматривает текущий запущенный проект (т. Е. Ваш тестовый проект и / или ваше приложение windows form / console).

Поведение по умолчанию для ContextManager - использовать ConfigurationManager для поиска именованной строки соединения, если вы не передадите true второму параметру в ContextManager, тогда он будет просто использовать предоставленную строку в качестве строки соединения.

...