在现有的数据库优先的多个 .NET Core 项目解决方案中迁移到代码优先的最佳方法是什么?

有一个解决方案包含多个具有 DDD 架构的 .NET Core 数据库优先项目。 EF Core 为所有项目搭建了 4 个不同的数据库。由于我们还没有版本控制和发布控制,控制项目和数据库版本的最佳方法是什么?

是否可以切换到代码优先迁移以将数据库更改保留为版本?

目前,所有项目都在 TFS git 存储库上,因此我们有提交和推送的历史记录。

xuexiaojuanxxj13400 回答:在现有的数据库优先的多个 .NET Core 项目解决方案中迁移到代码优先的最佳方法是什么?

根据Microsoft,答案是肯定的!您首先可以做的是首先通过 dotnet ef dbcontext scaffold 命令(这是 .NET 调用的,reverse engineering)搭建数据库。

这里发生的事情是这样的:

  1. 脚手架 Db 将生成 DbContext 和相关模型到您执行命令的目录(除非您指定希望它在命令参数中结束的位置)
  2. 您可以将模型和 DbContext 移动并分类到它们各自假定的位置。
  3. 修复命名空间(如果需要)
  4. 完成!不要忘记将 DbContext 注入您的 DI 管道

我个人在我的团队很小的时候就这样做了,您所要做的就是在 dotnet ef 中包含包含带有 -p arg 的 DbContext 的项目和 DbContext 本身(如果包含DbContext 由许多 DbContext 组成)通过 -c(我想 DDD 不会要求您 -c

类似的东西。 dotnet ef migrations add 等其他命令也是如此(老实说,几乎每个 dotnet ef 命令都一样)

dotnet ef database update -c NozomiDbContext -v -p ../Nozomi.Repo
本文链接:https://www.f2er.com/3216.html

大家都在问