Различные строки подключения с Entity Framework в зависимости от контекста

У меня есть приложение веб-форм, которое использует инфраструктуру сущностей, приложение развернуто в окне разработки, на моем локальном компьютере и в рабочем поле. Каждый из них имеет разные строки подключения. Каков наилучший способ справиться с этим.

Я использую TFS Build Server для развертывания в разработке, беру результат этой сборки в архив и копирую его в рабочую среду вручную.

Я также использую проекты веб-развертывания, если это помогает

То, что я делал раньше, заключалось в том, что при запуске ORM он выбирал строку подключения на основе имени корневой папки. С Entity Framework я не знаю, как это сделать, не устанавливая его на каждой странице.


person Community    schedule 21.09.2009    source источник


Ответы (2)


У нас есть что-то отдаленно похожее, я создал класс для переноса объекта EntityContext, который соответствующим образом устанавливает строку подключения — вам понадобится что-то подобное, исходя из того, как вы устанавливаете строку подключения:

Public Class MyEntityModel

    Private _dataContext As Entities

    Public Sub New()

        Dim entityBuilder As New EntityConnectionStringBuilder()

        entityBuilder.ProviderConnectionString = MyApplicationConnectionString

        entityBuilder.Metadata = "res://*/"

        entityBuilder.Provider = "System.Data.SqlClient"

        _dataContext = New Entities(entityBuilder.ConnectionString)

    End Sub

    Public Function DataContext() As Entities
        Return _dataContext
    End Function

End Class
person Paddy    schedule 21.09.2009
comment
Хорошая идея, я немного расширил ее и вместо этого сделал public Context() : base(GetDefaultConnectionString()) { } GetDefaultConnectionString() — общедоступный статический метод, который получает строку подключения. - person ; 21.09.2009

К вашему сведению, теперь вы можете использовать преобразования конфигурации в VS 2010: http://msdn.microsoft.com/en-us/vstudio/Video/ff801895

person AaronLS    schedule 10.12.2010