2016-05-20 5 views
0

私はBadgeAssignmentRepositoryのインスタンスを作成する次のコントローラを持っています。私は、dbcontext変数をリポジトリの宣言に渡そうとしました。しかし、私は受け取るA field initializer cannot reference the nonstatic field, method, or property EntryController.dbリポジトリにdbcontextを渡す:フィールド初期化子が非静的フィールド、メソッド、またはプロパティを参照できません

私のコードが間違っている理由はわかりません。誰か助けてくれますか?ここで

はコントローラである:ここでは

public class EntryController : Controller 
{ 
    public EchoLuMvcDbContext db = new EchoLuMvcDbContext(); 
    private BadgeAssignmentRepository baRepository= new BadgeAssignmentRepository(db); 
    //this db is causing the trouble 

はリポジトリです:

public class BadgeAssignmentRepository 
{ 
    public EchoLuMvcDbContext db { get; set; } 

    public BadgeAssignmentRepository(EchoLuMvcDbContext context) 
    { 
     this.db = context; 
    } 

答えて

3

エラーが言うように、あなたはフィールド初期化子から別のフィールドにアクセスすることはできません。 BadgeAssignmentRepositoryにdbフィールドへの参照が必要な場合は、コントローラのコンストラクタで以下のように初期化してください。

public class EntryController : Controller 
{ 
    public EchoLuMvcDbContext db = new EchoLuMvcDbContext(); 
    private BadgeAssignmentRepository baRepository; 

    public EntryController() { 
     baRepository = new BadgeAssignmentRepository(db); 
    } 
} 
+0

フィードバックはありますか?回答としてマークするか、追加のコメントを追加してください。ゾンビの質問はみんなを傷つける。 –

関連する問題