Entity framework 手动创建Ef核心迁移脚本
由于我当前的项目结构需要处理许多数据库视图,因此我希望手动编写Ef核心迁移类 我们使用的是代码优先的方法 我知道像php这样的框架,在那里我可以简单地手动创建迁移文件 在ef core中也可以这样做,而不使用Entity framework 手动创建Ef核心迁移脚本,entity-framework,.net-core,entity-framework-core,entity-framework-migrations,Entity Framework,.net Core,Entity Framework Core,Entity Framework Migrations,由于我当前的项目结构需要处理许多数据库视图,因此我希望手动编写Ef核心迁移类 我们使用的是代码优先的方法 我知道像php这样的框架,在那里我可以简单地手动创建迁移文件 在ef core中也可以这样做,而不使用数据库ef迁移添加 更新 我试图手动创建迁移文件,但是它没有在context.Database.Migrate()上执行。 这是因为缺少.Designer-文件还是未更改的快照-文件 我真的需要快照和设计器文件吗?我猜迁移系统会在历史数据库表中跟踪执行的迁移 更新2 我从EF Migrati
数据库ef迁移添加
更新
我试图手动创建迁移文件,但是它没有在context.Database.Migrate()上执行。
这是因为缺少.Designer
-文件还是未更改的快照
-文件
我真的需要快照和设计器文件吗?我猜迁移系统会在历史数据库表中跟踪执行的迁移
更新2
我从EF Migrations
更改为FluentMigrator
。此模块解决了我的所有问题。没有尝试过,但不明白为什么不可能。dotnet ef migrations add
所做的所有工作都是向项目中添加一个生成的类,该类继承自Migration
,并在文件名中添加了一个时间戳,以允许对迁移进行排序。我猜您可以手动创建一个类,该类继承自迁移
,重写方法向上
和向下
,并且在名称中有时间戳。运行迁移时,会将其记录在数据库中,以便应用程序知道运行了哪些迁移。或者,正常生成迁移,然后删除并替换Up
和Down
@Neil中的现有代码。非常感谢您的回复。其他创建的文件如contextmodelsnashot.cs
和*.Designer.cs
有什么用?我没有*.Designer.cs
文件。不确定这是否首先适用于代码。ContextModelSnapshot.cs
是上次创建迁移后实体模型的完整表示。这意味着,当您更改类时,迁移引擎可以比较当前类结构和快照,以确定发生了哪些更改,并构建适当的迁移来交付这些更改。模型快照将在每次迁移创建后更新,因此它始终表示最新迁移时模型的完整状态。