Я добавлял миграцию в свой проект ASP.NET Core с использованием EF Core 2.0. Я выполнил команду «Add-Migration» migrationName в консоли диспетчера пакетов. Миграция была успешно добавлена в мою папку миграции, однако при попытке обновить снимок я получил эту ошибку:

Доступ к пути C: \ path \ to \ snapshot \ DbContextModelSnapshot.cs запрещен.

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

Как это исправить?

7
Jeroen 13 Мар 2018 в 14:55

2 ответа

Лучший ответ

Я дико догадываюсь: у вас есть решение под управлением исходным кодом TFS с рабочей областью сервера. После того, как вы изначально вернули свой код, файл стал доступен только для чтения. Похоже, PM не проверяет файлы (и не добавляет файлы миграции) в систему управления версиями автоматически. Итак, чтобы исправить это: перед запуском команды проверьте снимок, а после запуска миграции добавьте вновь сгенерированные файлы в систему управления версиями.

5
Botis 15 Мар 2018 в 09:38

Я столкнулся с такой же ситуацией.

Access to the path 'C:\repos\ProjectName\Migrations\ProjectNameDbContextModelSnapshot.cs' is denied.

Просто щелкнул правой кнопкой мыши файл projectDbContextModelSnapshot.cs с помощью проводника Windows и увидел, что есть флаг только для чтения, и удалил этот флажок. Задача решена.

1
Alakbar 2 Фев 2019 в 22:57