Приложение использует EF 6.1.2 для подключения к базе данных. База данных автоматически обновляется приложением с помощью функции миграции EF.
Однако миграция вызывает конструктор без параметров вместо использования строки подключения, используемой клиентским контекстом, который запускает миграцию. Как заставить миграцию (которая запускается на строке var z = await y.ToListAsync();
) использовать строку подключения, предоставленную clientContext
?
Строка подключения клиентского контекста предоставляется пользователем (т.е. она недоступна ни в app.config, ни под каким-либо другим именем).
Код
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ClientContext, Configuration>());
var clientContext = new ClientContext(connectionString);
var y = clientContext.Set<TEntity>();
var z = await y.ToListAsync();
Класс конфигурации
public sealed class Configuration : DbMigrationsConfiguration<ClientContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
}
Класс ClientContext
public class ClientContext : DbContext
{
public ClientContext()
: this(Properties.Settings.Default.OnlineConnectionString)
{
}
public ClientContext(string connectionString) : base(connectionString)
{
}
}