EF Core SQLite on Mac and Windows with Publish to Azure



我正在寻找一种改进的解决方案,用于跨平台EF Core本地开发,并将阶段/生产发布到Azure Web/SQL。

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

1) 删除本地 SQLite 数据库以及现有的迁移和 ContextModelSnapshot 文件2) 创建"初始"迁移
3) 更新数据库
4)脚本的Windows版本将SQLite数据库移动到wwwroot目录,因为我们在Windows上使用IIS Express。

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

对于本地开发人员,解决方案正在工作。

当我发布到 Azure 时,我们:
1)注释掉服务。添加实体框架() .AddSQLite() 连接并切换到 SQLServer connections
2) 运行脚本以创建新的迁移(因为为 SQLite 生成的迁移不适用于 Azure SQL)
3) 运行脚本以删除 SQL Azure
上的数据库表4) 发布
5) 将配置切换回 SQLite 并继续本地开发

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

> 似乎唯一正确的解决方案是 Startup 中特定于环境的方法.cs如前所述。

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

最新更新