数据库架构迁移与LINQ查询全解析
1. 与TFS结合时的架构迁移问题
在与Team Foundation Server(TFS)的版本管理系统结合使用时,特别是在使用具有写保护功能的Server Workspace经典变体时,Entity Framework Core的工具会遇到一些困难。它会报告无法修改迁移文件夹中的文件,会出现类似 “Access to the path …WWWingsContextModelSnapshot.cs’ is denied.” 的错误。
解决方案
在运行命令之前,你应该使用 “Check Out for Edit” 解锁迁移文件夹。
另一个问题是, Remove - Migration
命令会删除磁盘上的文件,但不会从TFS版本控制中删除。你必须在 “Pending Changes” 窗口中手动选择Visual Studio命令 “Undo”。
2. 运行时的架构迁移
在某些罕见的情况下,小型应用程序(如控制台应用程序)需要将架构更改导入目标数据库。这些情况包括:
- 为不熟悉SQL的数据库管理员或客户服务代表提供工具。
- 在发布管道的自动化集成测试中安装或更新数据库。
- 在终端用户系统上安装或更新本地数据库(如果是移动应用程序,应在启动时将架构迁移直接安装到实际应用程序中)。
可用方法
对于适合进行程序执行架构迁移的情况,Entity Framework Core提供了以下方法:
- ctx.Database.GetMigrations() <