Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 手动创建Ef核心迁移脚本_Entity Framework_.net Core_Entity Framework Core_Entity Framework Migrations - Fatal编程技术网

Entity framework 手动创建Ef核心迁移脚本

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核心迁移类

我们使用的是代码优先的方法

我知道像php这样的框架,在那里我可以简单地手动创建迁移文件

在ef core中也可以这样做,而不使用
数据库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
是上次创建迁移后实体模型的完整表示。这意味着,当您更改类时,迁移引擎可以比较当前类结构和快照,以确定发生了哪些更改,并构建适当的迁移来交付这些更改。模型快照将在每次迁移创建后更新,因此它始终表示最新迁移时模型的完整状态。