SQLite не поддерживает эту операцию миграции ('DropForeignKeyOperation') - PullRequest
1 голос
/ 04 апреля 2020

Я создаю веб-API, используя Asp. Net core 3.0 с EFcore. Я использую код первый подход. Я сделал первоначальную миграцию с этой моделью

  public class Group {
    [Key]
    public int Id{get;set;}
    public string Title { get; set; }
   }

Позже я добавил отношение к внешнему ключу для этой модели

  public class Group {
    [Key]
    public int Id{get;set;}
    public string Title { get; set; }

    [ForeignKey("UserId")]
    public User User { get; set; }
    public int UserId { get; set; }
   }

Новые миграции генерируются правильно, когда я запускаю Add-Migration <migrationName> на PMC. Но когда я запускаю update-database, я получаю эту ошибку: SQLite не поддерживает эту операцию миграции ('DropForeignKeyOperation')

1 Ответ

0 голосов
/ 04 апреля 2020

Это задокументированное ограничение поставщика базы данных SQLite:

Обходной путь (Источник: MSDN )

Вы можете обойти некоторые из этих ограничений, вручную написав код в своих миграциях, чтобы выполнить перестройку таблицы. Перестройка таблицы включает переименование существующей таблицы, создание новой таблицы, копирование данных в новую таблицу и удаление старой таблицы. Вам нужно будет использовать метод Sql (строка) для выполнения некоторых из этих шагов.

Редактировать : По указанию @Shawn кажется, что MSDN устарел и это халатность. Вместо этого используйте метод Sql(string) для выдачи оператора ALTER TABLE, как описано здесь .

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