Как вы можете изменить строку подключения SubSonic 3 на лету? - PullRequest
1 голос
/ 27 марта 2012

Я хочу обернуть некоторые запросы в SharedDbConnectionScope и выполнить их в другой строке подключения.Как добавить строку провайдера / соединения динамически, чтобы сделать это?

Спасибо

1 Ответ

2 голосов
/ 27 марта 2012

И ActiveRecord\Context.tt, и LinqTemplates\Context.tt, которые вы использовали бы для генерации ваших классов, содержат конструкторы:

    public <#=DatabaseName#>DB(string connectionStringName)
    {
        DataProvider = ProviderFactory.GetProvider(connectionStringName);
        Init();
    }

    public <#=DatabaseName#>DB(string connectionString, string providerName)
    {
        DataProvider = ProviderFactory.GetProvider(connectionString,providerName);
        Init();
    }

Таким образом, вы можете передать строку подключения одному из этих конструкторов, например:

// point to a certain connection string in the app.config
var db = new MySample("SomeConnectionStringName");

// Use a specific connection string, not the app.config
var db = new MySampleDB(@"server=.\SQL2008;database=Sample;integrated security=true;", "System.Data.SqlClient");
...