2012-02-07 156 views
2

從EF 4.2升級並遷移到EF 4.3並啓用遷移後,重新啓動Visual Studio以及所有內容,每當我嘗試調用Update-Database/Add-Migration時,我都會得到:實體框架4.3更新數據庫時的遷移異常

System.Reflection.TargetInvocationException:調用的目標引發了異常。 ---> System.ArgumentException:
該參數不正確。 (從HRESULT異常:80070057 (E_INVALIDARG))內部異常堆棧跟蹤的
--- ---完
在System.RuntimeType.InvokeDispMethod(字符串名稱,的BindingFlags invokeAttr,對象目標,對象[]指定參數時,布爾[ ] byrefModifiers,Int32 culture,String [] namedParameters)
at System.RuntimeType.InvokeMember(String name,BindingFlags bindingFlags,Binder binder,Object target,Object [] providedArgs, ParameterModifier []修飾符,CultureInfo culture,String [] namedParams)
at System.Management.Automation.ComMethod.InvokeMethod(PSMethod method,Object [] arguments)
Upda te-Database:調用目標引發異常。
在行:1個字符:1
+更新數據庫
+ ~~~~~~~~~~~~~~~
+ CategoryInfo:OperationStopped:(例外具有b個......的調用。 :字符串)[更新,數據庫],RuntimeException的
+ FullyQualifiedErrorId:異常已通過調用的目標引發異常,更新,數據庫

我試圖清理整個項目,刪除EF和遷移和包文件夾。並從一開始就這樣做,而且還是一樣的錯誤!

任何人都面臨同樣的錯誤?或者有這個解決方案?

回答

5

如果你有單獨的項目背景和遷移,您需要使用外接遷移和更新數據庫

same error的-StartupProjectName「YourProject」選項,在4.3測試版。我也在4.3版本中遇到過它。

+1

我也注意到了這一點。但在我的情況有點不同。 我在一個項目中有我的DbContext和Migrations。但這不是啓動項目。添加-StartupProjectName也解決了這個問題。真的很煩人每次輸入這個。 – 2012-02-12 14:37:42

+0

是的,當Ef Team確認這個我覺得奇怪的4.3之前的版本沒有遭受這個! – Stacker 2012-02-13 14:48:53

3

而不是使用的PowerShell命令,你可以控制通過代碼遷移,然後告訴它你的裝配和背景是:

var configuration = new DbMigrationsConfiguration() { 
    MigrationsAssembly = typeof(YourMigrations).Assembly, 
    ContextType = typeof(YourContext) 
}; 

此後,您可以腳本出來或自動運行它使用DbMigrator類:

var migrator = new DbMigrator(configuration); 
var scripter = new MigratorScriptingDecorator(migrator); 
string script = scripter.ScriptUpdate(null, null); 
+0

即時對此非常感興趣,請您解釋更多? – Stacker 2012-02-15 02:04:29

+0

您可能只想查看[DbMigrator的MSDN文檔](http://msdn.microsoft.com/zh-cn/library/system.data.entity.migrations.dbmigrator(v = vs.103).aspx ) – 2012-02-17 17:48:05

相關問題