Asp.net MVC сущности с несколькими базами данных

У меня есть проект ASP.Net MVC, который использует EF. Я разрабатываю это приложение на рабочем компьютере и на своем домашнем компьютере. Следующее есть в моем Web.config. Как я могу изменить EDMX с правильной строкой подключения для каждого офиса? Пока что мне нужно удалить EDMX, добавить их и закомментировать другие строки подключения. Благодарю.

    <connectionStrings>
    <clear/>
    <!-- At Home connections -->
    <add name="App1Entities" connectionString="metadata=res://*/Models.App1Model.csdl|res://*/Models.App1Model.ssdl|res://*/Models.App1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=my-pc\SqlExpress;initial catalog=App1Database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    <add name="Service1Entities" connectionString="metadata=res://*/Models.Service1Model.csdl|res://*/Models.Service1Model.ssdl|res://*/Models.Service1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=my-pc\SqlExpress;initial catalog=ServiceDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

    <!-- At Work connections 
    <add name="App1Entities" connectionString="metadata=res://*/Models.App1Model.csdl|res://*/Models.App1Model.ssdl|res://*/Models.App1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=sqlServer1;initial catalog=App1Database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    <add name="Service1Entities" connectionString="metadata=res://*/Models.Service1Model.csdl|res://*/Models.Service1Model.ssdl|res://*/Models.Service1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=sqlServer2;initial catalog=ServiceDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    -->
</connectionStrings>

3 ответа

Решение

Вам нужно несколько строк подключения, но вам не нужно вставлять переключатель в ваш код; использование

<connectionStrings configSource="MyLocalConnectionStrings.config" />

см MSDN

Вам нужно будет поддерживать MyLocalConnectionStrings.config в том же каталоге, что и web.config, и иметь разные версии для каждой среды разработки.

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

В Visual Studio вы можете использовать Config Tranforms для генерации различных параметров конфигурации в зависимости от режима ("Release" и "Debug" настроены по умолчанию, вы можете добавить другие), выбранных в Configuration Manager.

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

Добавьте режим "Домой" или что-то в этом роде с соответствующей строкой подключения, соответствующей вашей среде дома.

Другие вопросы по тегам