2016-08-01 35 views
0

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

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

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

回答

0

EF核心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)。

+0

谢谢。已经在那里挖了,但它会像另一个项目那样做。奇怪的是,他们并没有提出一些具有复制ef'命令所有功能的方法的外观类。 –

相关问题