Невозможно создать таблицу SQL с использованием подхода «сначала код» в Azure через Entity Framework - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь опубликовать свою базу данных в Azure с помощью EF, но не могу увидеть таблицы после миграции.

Я пробовал следующие команды:

Add-Migration MyTables
Update-Database

Когда я проверяю свой AzureБД через SSMS, я вижу журналы для всей миграции в таблице dbo.__EFMigrationsHistory, но таблица не создается.

Мой класс контекста:

 public class ApplicationContext : DbContext
{
    public DbSet<Expense> Expenses { get; set; }

    public ApplicationContext(DbContextOptions opts) : base(opts)
    {

    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
    }
}

ConnectionString:

"ConnectionString": {"ExpenseApplicationDB": "Сервер = tcp: myserver, 1432; Начальный каталог = ExpenseDatabase; Сохранять информацию о безопасности = False; ID пользователя = {your_username}; Пароль = {your_password}; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False; Время ожидания подключения = 30; "}

Также в диалоговом окне публикации в разделе базы данных показано «Базы данных не найдены в проекте».

Если я пытаюсь добиться того же с помощью локальной базы данных, чем она работает, как ожидалось.Есть что-то, что я делаю не так?

1 Ответ

0 голосов
/ 21 мая 2018

Когда вы публикуете с помощью .net EntityFramework, вы можете щелкнуть по вкладке Выполнить код первой миграции (запускается при запуске приложения) .

Однако в ядре EF его не существует.,Кроме того, EF не поддерживает автоматические миграции, вам может потребоваться вручную выполнить Add-Migration для добавления файлов миграции.

Также в диалоговом окне публикации в разделе базы данных показано «В базе данных не найдено ни одной базы данных».

Вы также не можете существовать в базе данных, вы не можете применить миграцию при публикации .

enter image description here

Если вы хотите применить миграцию во время выполнения , вы можете добавить следующий код в метод Configure Startup.cs.

 using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
    {
        scope.ServiceProvider.GetRequiredService<ApplicationDbContext>().Database.Migrate();
    }

Для получения дополнительной информации вы можете обратиться кк этому потоку .

Примечание необходимо убедиться, что вы можете подключиться к базе данных Azure.Вы можете установить соединение в лазурном с местным.Чтобы вы могли также проверить локальную базу данных Azure и отладить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...