visual studio msql server
У меня в код sqlconnection = new sqlconnection(@"Data Source...) При опубликовании приложении и переносе его на другой компьютер, нужно будет в ручную создавать БД на другом компьютере?
Ответы (1 шт):
Автор решения: Max S
→ Ссылка
Если использовать EntityFrameworkCore, то у инстанса контекста базы данных DbContext есть свойство Database с методом EnsureCreated(), который делает следующее:
- Если база данных существует и содержит таблицы, никакие действия не предпринимаются. Для обеспечения совместимости схемы базы данных с моделью Entity Framework ничего не делается.
- Если база данных существует, но не содержит таблиц, то для создания схемы базы данных используется модель Entity Framework.
- Если база данных не существует, создается база данных, а для создания схемы базы данных используется модель Entity Framework.
Пример:
public class MyDbContext : DbContext
{
// описание модели
public ApplicationContext() => Database.EnsureCreated();
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(/* строка подключения */);
}
}
В старых версиях EF для полного .NET Framework тоже есть подобный метод CreateIfNotExists. Пример:
class MyDbContext : DbContext
{
// описание модели
public MyDbContext ()
:base(/* строка подключения */)
{
Database.CreateIfNotExists();
}
}