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="data source=my-pc\SqlExpress;initial catalog=App1Database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" 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="data source=my-pc\SqlExpress;initial catalog=ServiceDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" 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="data source=sqlServer1;initial catalog=App1Database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" 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="data source=sqlServer2;initial catalog=ServiceDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
-->
</connectionStrings>
3 ответа
Вам нужно несколько строк подключения, но вам не нужно вставлять переключатель в ваш код; использование
<connectionStrings configSource="MyLocalConnectionStrings.config" />
Вам нужно будет поддерживать MyLocalConnectionStrings.config в том же каталоге, что и web.config, и иметь разные версии для каждой среды разработки.
Предполагая, что схемы одинаковы в двух базах данных, нужно просто заменить строку подключения в web.config. Так что я действительно не понимаю, в чем твоя путаница.
В Visual Studio вы можете использовать Config Tranforms для генерации различных параметров конфигурации в зависимости от режима ("Release" и "Debug" настроены по умолчанию, вы можете добавить другие), выбранных в Configuration Manager.
Настройте преобразование для строки подключения, затем при публикации сайта в режиме выпуска будет указана правильная строка подключения.
Добавьте режим "Домой" или что-то в этом роде с соответствующей строкой подключения, соответствующей вашей среде дома.