我只是在研究在我们的项目中使用EF迁移,特别是在不同版本之间执行生产中的模式更改.

我曾经提到,有一个API可以使用DbMigration类在运行时执行这些迁移,但我找不到任何具体的例子.

理想情况下,我希望每个数据库更改都有一个DbMigration文件,并且在应用程序从当前版本到最新版本启动时自动应用这些更改.

推荐答案

有一个数据库初始值设定项可用于在启动时实现到最新版本的迁移(或者更好的情况是,dbinitializer将在第一次访问数据库时生效),即MigrateDatabaseToLatestVersion,您可以这样使用它:

Database.SetInitializer<ObjectContext>(
    new MigrateDatabaseToLatestVersion<ObjectContext, Configuration>());

关于每次迁移一个文件的问题,如果启用自动迁移,您将在项目根目录的Migrations文件夹(默认情况下)中找到它们.

相关信息和示例,请点击此处:http://weblogs.asp.net/fredriknormen/archive/2012/02/15/using-entity-framework-4-3-database-migration-for-any-project.aspx

.net相关问答推荐

MSBuild:CopyToOutputDirectory不会将本机DLL复制到输出

在`MAUI`应用中使用Android`MediaPlayer`的`prepare`方法只在发布模式下和在物理设备上崩溃

无法对.NET MAUI类库进行单元测试

在数据网格中:如何在更改单元格 A 中的值后显示单元格 B 中的更改

将 Moq 模拟对象传递给构造函数

为什么这个多态 C# 代码会打印它的功能?

在 .NET 反射中使用 GetProperties() 和 BindingFlags.DeclaredOnly

通用枚举到int的C#非装箱转换?

共享 AssemblyInfo 用于跨解决方案的统一版本控制

是否有用于 Windows / C# 开发的可嵌入 Webkit 组件?

什么是 project.lock.json?

.NET 事件 - 什么是对象发送者和 EventArgs e?

Double.TryParse 或 Convert.ToDouble - 哪个更快更安全?

在 C#/.NET 中组合路径和文件名的最佳方法是什么?

判断 .NET 中的目录和文件写入权限

MemoryCache 不遵守配置中的内存限制

忽略 LINQ to XML 中的命名空间

ConfigurationManager.AppSettings - 如何修改和保存?

如何使用 AutoMapper .ForMember?

嵌套捕获组如何在正则表达式中编号?