54 lines
1.8 KiB
C#
54 lines
1.8 KiB
C#
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
|
|
|
|
namespace System.Data.Entity
|
|
{
|
|
using System.Configuration;
|
|
using System.Data.Entity.Internal.ConfigFile;
|
|
|
|
public static class ConfigurationExtensions
|
|
{
|
|
public static Configuration AddDefaultConnectionFactory(
|
|
this Configuration config,
|
|
string factoryName,
|
|
params string[] parameters)
|
|
{
|
|
var ef = (EntityFrameworkSection)config.GetSection("entityFramework");
|
|
ef.DefaultConnectionFactory.FactoryTypeName = factoryName;
|
|
|
|
foreach (var argument in parameters)
|
|
{
|
|
var element = ef.DefaultConnectionFactory.Parameters.NewElement();
|
|
element.ValueString = argument;
|
|
}
|
|
|
|
config.Save();
|
|
|
|
return ConfigurationManager.OpenMappedExeConfiguration(
|
|
new ExeConfigurationFileMap
|
|
{
|
|
ExeConfigFilename = config.FilePath
|
|
},
|
|
ConfigurationUserLevel.None);
|
|
}
|
|
|
|
public static Configuration AddConnectionString(
|
|
this Configuration config,
|
|
string name,
|
|
string connectionString,
|
|
string providerName = null)
|
|
{
|
|
config.ConnectionStrings.ConnectionStrings.Add(
|
|
new ConnectionStringSettings(name, connectionString, providerName));
|
|
|
|
config.Save();
|
|
|
|
return ConfigurationManager.OpenMappedExeConfiguration(
|
|
new ExeConfigurationFileMap
|
|
{
|
|
ExeConfigFilename = config.FilePath
|
|
},
|
|
ConfigurationUserLevel.None);
|
|
}
|
|
}
|
|
}
|