2016-05-20 10 views
1

私は単一のデータベースで動作するプロジェクトを持っています。今私はそれが同じデータ構造を持つ2番目(同じプロジェクト内)で動作するようにする必要があります。だから、私は同じモデルを使用して、私のデータコンテキストクラスの呼び出し時にデータ接続名を渡そうとしています。残念ながら、私は、次のエラーが発生します:モデルで2つの異なるデータベースを使用する - コンストラクタでクラッシュする

The type String cannot be constructed. You must configure the container to supply this value.

ここで私が試したコードです:

public UniversityContext(string context) 
      : base(context){ 

    } 

を、私は答えを探したとき、私はそのエラーのthis答えを発見し、それが推奨する、PARAMETER-を持つが、少ないコンストラクタも必要です。私はそれを試みたが、それと同じ問題です。

ここでは、パラメータなしのコンストラクタである:

public UniversityContext() 
      : base("UniversityConnection") 
     { 

     } 

     public UniversityContext(string context) 
      : base(context) 
     { 

     } 

私がユニティを使用しています重要な場合。

答えて

1

Unityは、最も貪欲なコンストラクタを自動的に使用しようとします。あなたのケースでは、これは次のとおりです。ご回答ありがとうございましたが、どこで、注射をかけることになり、

container.RegisterType<UniversityContext>(
      new InjectionConstructor("UniversityContext")); 
+0

Hutchonoid:

public UniversityContext(string context) 

あなたは、このようなあなたのコードの何かを見ることなく、注射コンストラクタでこれを設定することができますコンストラクタ?そして、私はそれをどのように異なる接続に応じて変更するのですか? Btw、元の投稿を少し更新しました(接続名を更新しました)。 – djblois

+0

@djblois問題はありませんが、私は通常、登録されたすべてのタイプを設定するブートストラップを持っています。 web.configから値を読み込んだり、要件に応じて実行時に値を決定することができます。これは良い記事です:https://msdn.microsoft.com/en-us/library/dn178463%28v=pandp.30%29.aspx?f=255&MSPPError=-2147217396 – hutchonoid

関連する問題