2014-02-18 4 views
0

Привет Я работаю над проектом ASP.NET MVC. В настоящее время я использую первый подход к модели, когда я использовал базу данных вручную, используя модель ADO.NET. В настоящее время у меня есть 4 базы данных, и у меня есть 4 строки подключения в файле web.config.Генерировать строку соединения динамически в ASP.NET MVC

Это было нормально до сих пор, так как я работал над средой разработки. Но теперь мне нужно переместить мой код, чтобы жить, и проблема в том, что у нас есть 40-50 баз данных.

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

У меня есть хранимая процедура для этого, которая возвращает строку подключения и имя базы данных.

Например, если у меня есть 4 таких имени базы данных, как db1, db2, db3 и db4, мне нужно сравнить это имя базы данных с именем базы данных результатов моей хранимой процедуры, а если оба они равны, то сгенерировать строку соединения, равную имени этой базы данных ,

А также мне нужно поставить это в сеанс, как только я создам строку соединения, поэтому нет необходимости генерировать строку соединения снова для определенного сеанса.

Может кто-нибудь помочь мне в этом ??

+0

взгляните на SqlConnectionBuilder .... http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder(v=vs.110).aspx. Помните, что MVC технически не имеет концепции сеанса. Кроме того, сохранение строки подключения в любой форме сеанса не является хорошей идеей по соображениям безопасности, но и сеанс не является масштабируемым. возможно, вам нужно подумать о своем подходе здесь, и если это необходимо. –

+1

Могу ли я узнать, в чем проблема, если вы сохраните все эти строки подключения в web.config? – ramiramilu

+0

@ramiramilu Вы имеете в виду, что мне нужно сохранить все 40 строк подключения в файле web.config? Затем мне нужно добавить строку подключения для всей базы данных, а также, поскольку у меня есть хранимая процедура, которая возвращает строку подключения, я решаю генерировать динамически. – Ajay

ответ

0

EF DbContext как constructor parameter принимает имя строки соединения или самой строки подключения. Таким образом, нет никакой проблемы при создании какой-либо строки соединения и ее поставке при создании DdContext.

В нашем приложении у нас есть много арендаторов и есть база данных для каждого арендатора. Для каждого запроса мы просматриваем, что это за арендатор, и из базы данных настроек DB приводят строку подключения к собственной базе данных арендатора.

Я не работал с Ado.Net, но из того, что я вижу в Google, это очень похоже (или основано) на Entity Framework. Таким образом, вплоть до вашей конкретной реализации должен быть способ предоставить строку подключения в контексте базы данных с web.config.

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