Приложение использует 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)
{
}
}
Мне нужно иметь возможность напрямую подключать строку подключения, поскольку она отсутствует в app.config (она может быть предоставлена пользователем). – alik
См. Обновленный ответ. – ziyasal