Динамическое подключение к различным базам данных в гибридном мультитенантном решении - PullRequest
2 голосов
/ 05 мая 2011

Я исследовал подходы с несколькими арендаторами и несколькими экземплярами и выбрал гибрид.

Я храню один экземпляр моего приложения ASP.Net MVC 2, но клонирую структуру базы данных для каждого клиента.Я использую LINQ to SQL.

Сейчас у меня есть один экземпляр обоих, поэтому работает только одна строка подключения.

Я планирую расширить ее для многих клиентов.

Я могу написать код для создания клона структуры базы данных, создания пользователя базы данных и предоставления разрешений при регистрации нового клиента.Я также сохраню все эти данные (имя базы данных, имя пользователя базы данных, разрешенные пользователи приложения) в таблице.

Но как я могу заставить приложение использовать другую базу данных в зависимости от того, кто вошел в систему?1012 * Я даже не могу понять, какой подход я должен использовать для этого.Должен ли я программно добавить строку подключения в web.config?Есть ли другой способ сделать это?

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

Один из конструкторов для DataContext принимает строку подключения. Вы можете собрать эту строку на основе пользователя для конкретного запроса.

Это заменит соединение по умолчанию.

0 голосов
/ 05 мая 2011

Проверьте конструктор перегрузок для DataContext, есть тот, который принимает строку подключения. Вам просто нужно сопоставить строковое свойство с зарегистрированным пользователем.

Пожалуйста, не программно добавляйте строку подключения КАЖДОГО пользователя в web.config, подумайте о масштабируемости !!!

...