Entity framework core 在Mac和Windows上发布到Azure的EF Core SQLite

Entity framework core 在Mac和Windows上发布到Azure的EF Core SQLite,entity-framework-core,Entity Framework Core,我正在为跨平台EF核心本地开发寻找一个改进的解决方案,该解决方案将阶段/生产发布到Azure Web/SQL 当前本地解决方案: 我有一个ASP.NET Core、EF Core、Identity、MVC 6应用程序,在MacOS和Windows上使用SQLite进行本地开发。选择SQLite是因为我相信它是Mac和Windows唯一稳定的数据库提供商。每次进行需要数据库迁移的更改时,我们都会运行一个脚本 1) 删除本地SQLite数据库以及现有的迁移和ContextModelSnapshot文

我正在为跨平台EF核心本地开发寻找一个改进的解决方案,该解决方案将阶段/生产发布到Azure Web/SQL

当前本地解决方案:
我有一个ASP.NET Core、EF Core、Identity、MVC 6应用程序,在MacOS和Windows上使用SQLite进行本地开发。选择SQLite是因为我相信它是Mac和Windows唯一稳定的数据库提供商。每次进行需要数据库迁移的更改时,我们都会运行一个脚本

1) 删除本地SQLite数据库以及现有的迁移和ContextModelSnapshot文件 2) 创建“初始”迁移
3) 更新数据库
4) 在windows上使用IIS Express时,该脚本的windows版本将SQLite数据库移动到wwwroot目录

注意:迁移文件夹在.gitignore中被忽略

对于本地开发人员,该解决方案正在运行

当我发布到Azure时,我们:
1) 注释掉services.AddEntityFramework().AddSQLite()连接并切换到SQLServer连接
2) 运行脚本以创建新的迁移(因为为SQLite生成的迁移在Azure SQL上不起作用)
3) 运行脚本以删除SQL Azure上的数据库表
4) 发布
5) 将配置切换回SQLite并继续本地开发


我希望有人能提出一个更好的解决方案,消除大多数手动步骤,并处理我们想要迁移而不是删除的登台/生产数据库的情况。

似乎唯一正确的解决方案是Startup.cs中的特定于环境的方法


基本上,您可以创建
ConfigureDevelopmentServices()
方法,并在其中添加特定于环境的配置。

您是否能够找到解决此问题的方法?我发现自己处于同样的情况下……除了脚本部分,我还没有想出更好的解决方案。