2016-08-01 55 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'命令所有功能的方法的外觀類。 –

相關問題