Как добавить провайдера сущности Framework 6 в код?

c# connection-string entity-framework-6

Вопрос

Я использую Entity Framework 6 в приложении C # и отлично работает. При создании модели приложение app.config генерируется со всей необходимой конфигурацией. Теперь мне не нравится иметь материал в app.config, поэтому я использую построитель строк подключения. Мне удалось удалить все из файла app.config, за исключением этого:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>

Если я удалю это, это не сработает. Итак, как я могу перевести этот конфиг в код c #? Как это сделать? Я просмотрел конфигурацию на основе кода ( http://msdn.microsoft.com/en-us/data/jj680699 ), однако это не помогло.

Мой частичный класс, который создает строку подключения, выглядит следующим образом:

public partial class LogEntities
    {
        public LogEntities(string serverName)
            : base(GetConnectionString(serverName))
        {
        }

        public static string GetConnectionString(string serverName)
        {
            // Specify the provider name, server and database.
            const string databaseName = "_LOG";

            // Initialize the connection string builder for the underlying provider.
            SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder
            {
                DataSource = serverName,
                InitialCatalog = databaseName,
                IntegratedSecurity = true,
                MultipleActiveResultSets = true
            };

            // Initialize the EntityConnectionStringBuilder.
            System.Data.EntityClient.EntityConnectionStringBuilder entityBuilder = new System.Data.EntityClient.EntityConnectionStringBuilder();
            entityBuilder.Provider = "System.Data.SqlClient";

            // Set the provider-specific connection string.
            entityBuilder.ProviderConnectionString = sqlBuilder.ToString();

            // Set the Metadata location.
            entityBuilder.Metadata = @"res://*/myproject.LogModel.csdl|res://*/myproject.LogModel.ssdl|res://*/myproject.LogModel.msl";

            return entityBuilder.ConnectionString;
        }
    }

Заранее благодарю за любую помощь.

Популярные ответы

В EF6 вы можете использовать конфигурацию Code Base. Взгляните на эту статью для более подробной информации. Он показывает, как установить фабрику соединений по умолчанию (используйте метод SetDefaultConnectionFactory ). Чтобы установить поставщика, вы используете метод SetProviderServices .



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему