2012-08-23 12 views
10

EF 4.3.1の移行を使用する場合、移行または更新データベースを追加する必要があるたびにStartUpProjectパラメータを使用する必要があります。私はこれをやり続ける必要がないので、これをどこかに設定することはできますか?データプロジェクトをスタートアッププロジェクトとして設定したくありません。違いがあれば、私のコンテキストと移行は異なるプロジェクトにあります。 StartpProjectパラメータを使用していない場合にスローさEntity Frameworkの移行のStartUp Projectパラメータを設定する

例外:

update-database -verbose 
Using NuGet project 'Data.Deployment'. 
Using StartUp project ''. 
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) 
    --- End of inner exception stack trace --- 
    at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) 
    at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) 
    at System.Management.Automation.ComMethod.InvokeMethod(PSMethod method, Object[] arguments) 
Exception has been thrown by the target of an invocation. 

答えて

2

これはあなたが何を言ってるのかである場合、私はわからないんだけど、あなたはどこプロジェクトへのパッケージマネージャコンソールでデフォルトのプロジェクトを設定することができますMigrationsの設定は次の場所にあります。一番右のドロップダウンリストです。
このようにして、スタートアッププロジェクトを引数として提供する必要はありませんでした。

+0

が、彼StartupProjectパラメータそれは例外をスローする –

+0

真剣に?あなたは例外の出力全体を投稿できますか? –

+0

は、元の投稿では上記の –

1

この問題を回避するには、ソリューションにテストプロジェクトを添付することです。

単体テストをたくさん書いたくない場合でも、データレイヤ名前空間などの適切なスタートアッププロジェクトです。

これにより、起動時に問題がなくなり、パッケージマネージャがソリューションIIRC全体に適用されます。そのため、デフォルトのプロジェクトがmigrationsフォルダ内にあることを確認してください。

7

少なくともEntity Frameworkの6、更新、データベースと-StartUpProjectNameパラメータを使用してスタートアッププロジェクトを指定すると:

update-database -StartUpProjectName <String> 

あなたは、コマンドの可能なパラメータを表示するためにパッケージマネージャコンソール内get-helpコマンドを使用することができます。

get-help update-database -detailed 
0

StartupProjectパラメータを使用します。私はTを指定しない場合、私はあることを行っているUpdate-database -StartupProject "PROJECTNAME"

関連する問題