2011-02-03 6 views
1

Environment .NET 3.5 Само обслуживание LLBL Pro 2,6Подключение к неправильной базе данных

Я знаю, что я мог бы сделать что-то глупое здесь. У меня следующий код

string connectionString = ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString; 
     DbUtils.ActualConnectionString = connectionString; 


     PersonCollection ps = new PersonCollection(); 
     ps.GetMulti(new PredicateExpression(Person.Lastname == "lastname")); 
     Console.WriteLine(pt.Count); 

Теперь, когда я создал сущностей из LLBL Studio, я использовал БД с именем ForGeneratingLLBL но в app.config строка подключения указывает на другой БД Master. Мое исключение состоит в том, что программа будет извлекать данные из того, что определено в DbUtils.ActualConnectionString (которое в этом случае определено в app.config), но по какой-то причине все еще возвращает данные из ForGeneratingLLBL. Любая идея, что я делаю неправильно здесь?

PS: Я разместил этот quetion на LLBL форуме, а также, пытаясь здесь, чтобы увидеть, если кто-нибудь был подобный вопрос перед

+1

Это один из LLBLGen gotchas ... почему они жестко задают имя db в сгенерированных объектах? не уверен, производительность или безопасность ... определенно не интуитивность ... пробовали много других ORMS и никогда не сталкивались с чем-либо подобным. – Luis

ответ

2

Если БД отличается от того, который вы сгенерировали сущности вы должны поместить это в вашем конфигурационный файл:

<configuration> 
    <configSections> 
    <section name="sqlServerCatalogNameOverwrites" type="System.Configuration.NameValueSectionHandler"/> 
    </configSections> 
</configuration> 

и это:

<sqlServerCatalogNameOverwrites>  
    <add key="OriginalDatabase" value="TargetDatabase" /> 
    </sqlServerCatalogNameOverwrites> 

В documentation под именем каталога перезапись

+1

Я делаю что-то подобное (немного другое), но позвольте мне убедиться, что я это понимаю. Итак, из моего примера, должен ли я добавить ? – imak

+1

ok, поэтому я использовал приведенный выше пример i, и он работал нормально, но это означает, что мне нужно будет предоставить это имя db-адреса дважды в sqlServerCatalogNameOverwrites, а затем также в connectionStrings, правильно? – imak

+1

фактически просто устанавливает исходное имя db для пустой строки. imak

Смежные вопросы