Подтвердить что ты не робот

Как установить строку контекстного соединения с помощью CloudConfigurationManager?

Я хочу использовать CloudConfigurationManager, чтобы я мог использовать файлы конфигурации Azure. Я хочу использовать строку подключения. Я добавил строку в свой Cloud.cscfg для настройки Контекста Entity Framework.

Я настраивал свой контекст следующим образом

public DomainContext()
    : base("ContextConnectionString")

Это принимало ContextConnectionString из Web.config

Я изменил конструктор контекста на этот

public DomainContext()
    : base(CloudConfigurationManager.GetSetting("ContextConnectionString"))

И теперь это работает.

Есть ли более элегантный способ сказать, что мой конструктор контекста сначала использует Azure cscfg?

4b9b3361

Ответ 1

В настоящее время нет более элегантного решения, нет. На самом деле это немного более элегантно, чем то, что вы должны были написать месяц назад. CloudConfigurationManager - это класс, который является новым в 1.7 SDK и был создан, потому что ранее не было встроенной поддержки для такого рода вещей. Если вы хотите сделать то, что CloudConfigurationMangager теперь вам нужно создать свой собственный класс, который был довольно распространенным.

Ответ 2

Вы могли бы разместить образец кода?

CloudConfigurationManager должен сначала проверить, выполняется ли код в роли Windows Azure, и если да, попытайтесь извлечь значение конфигурации из файла ServiceConfiguration.cscfg(который развертывается с ролью). Если не выполнять роль, CloudConfigurationManager должен вернуться к файлу приложения .config(web.config или app.config). В любом случае, я верю, что NULL возвращается, если значение не найдено.

Когда строка подключения извлекается из файла .cscfg(при условии, что код запущен в веб-роли Windows Azure), это значение может быть передано в перегрузку конструктора EF, которая установила бы строку соединения.