迁移时拒绝访问ContextModelSnapshot

时间:2018-03-13 11:55:20

标签: entity-framework-core ef-migrations snapshot

我使用EF Core 2.0在我的ASP.NET Core项目中添加了一个迁移。 我在包管理器控制台中运行了“Add-Migration”migrationName`命令。 迁移已成功添加到我的迁移文件夹中,但是,在尝试更新快照时出现此错误:

  

拒绝访问路径'C:\ path \ to \ snapshot \ DbContextModelSnapshot.cs'。

现在我的迁移文件夹中有一个新的迁移,但旧的快照因为目前无法更新。 迁移保存在与快照相同的文件夹中,并且所有用户都具有对文件夹的读/写权限。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我猜测: 您在TFS源代码管理下拥有服务器工作区的解决方案。 在您最初签入代码后,该文件变为只读。 似乎PM没有自动检出文件(或添加迁移文件)到源代码控制。所以为了解决这个问题: 在运行命令之前,请检出快照,然后在运行迁移后将新生成的文件添加到源代码管理中。

答案 1 :(得分:1)

我也遇到过同样的情况。

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

只需使用Windows资源管理器右键单击文件projectDbContextModelSnapshot.cs,并看到其中存在“只读”标志,然后删除了此复选框。问题解决了。