Dot-Net
在沒有 Web/App.config 的情況下執行實體框架 migrate.exe 工具的正確格式是什麼?
我們最近切換到實體框架數據遷移,我正在為我們的 MVC 應用程序編寫一些建構自動化腳本。如果我有一個 Web.config 指向它,我可以使用 4.3 中的 migrate.exe 工具從我們的建構伺服器成功執行遷移。該命令類似於:
ProjectName\packages\EntityFramework.4.3.1\tools\migrate.exe MyAssembly /startupdirectory:ProjectName\bin\Debug /startupconfigurationfile:ProjectName\Web.config /verbose但是,由於各種原因,我想避免使用 Web.config 並在遷移時傳入正確的連接字元串:
ProjectName\packages\EntityFramework.4.3.1\tools\migrate.exe MyAssembly /startupdirectory:ProjectName\bin\Debug /connectionString:"Data Source=awesomeserver;Initial Catalog=awesomedatabase;User Id=funkyuser;Password=crazypassword" /verbose這不起作用。更糟糕的是,它會使用 NullReferenceException 使 migrate.exe 崩潰。連接字元串與我們在 Web.config 中使用的相同。
有人遇到過這個嗎?我的連接字元串格式錯誤嗎?漏洞?
好的,我們想通了。在沒有 Web.config 的情況下執行時,還必須傳入 connectionProviderName 參數:
ProjectName\packages\EntityFramework.4.3.1\tools\migrate.exe MyAssembly /startupdirectory:ProjectName\bin\Debug /connectionProviderName:"System.Data.SqlClient" /connectionString:"Data Source=awesomeserver;Initial Catalog=awesomedatabase;User Id=funkyuser;Password=crazypassword" /verbose我已經確認這有效。