如何在.NET Core中以编程方式执行EntityFramework CLI命令?

时间:2016-08-01 13:51:09

标签: entity-framework-core .net-core

如何在 .NET Core 中以编程方式运行这些dotnet.exe ef <command>命令?

例如,添加迁移我正在终端dotnet ef migrations add NewMigration中运行,它确实会创建包含迁移类的Migrations文件夹,但是要以编程方式从C#代码创建新的迁移(例如)?

不建议使用Process.Start("cmd bla-bla"),因为代码应该是跨平台的,并且dotnet ef无论如何都会运行某些EntityFrameworkCore包中的代码。问题是什么代码?

1 个答案:

答案 0 :(得分:0)

EF Core API并非真正针对该场景设计,但如果你想要这样做,你需要重复“dotnet-ef.dll”的逻辑来收集项目上下文和编译输出,以及然后手动实例化并使用MigrationsOperations

请参阅https://github.com/aspnet/EntityFramework/blob/1.0.0/src/Microsoft.EntityFrameworkCore.Design.Core/Design/MigrationsOperations.cshttps://github.com/aspnet/EntityFramework/blob/1.0.0/src/Microsoft.EntityFrameworkCore.Design/Internal/OperationExecutor.cs

请谨慎使用:这些是“内部”API,这意味着它们的使用可能会因版本而异。 “dotnet ef”将在当前版本(1.0.0-preview2)和下一版本之间发生巨大变化。 (例如,整个工具实现将发生变化。请参阅https://github.com/aspnet/EntityFramework/issues/5334)。