2016-05-17 10 views
0

Ich habe meinen Controller mit einer Public ActionResult BestuuurEdit und ich möchte Code aus einem YouTube-Tutorial in meinen Code anwenden. Der Code:Controller erkennt keine Datenbank/Tabelle

public ActionResult BestuuurEdit(int id) 
    { 
     Persoon persoon = db.Persoon.Find(id); 
     if(persoon == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(persoon); 
    } 

Aber wenn Sie den Code der Anwendung erhalte ich folgende Fehler:

Der Typ oder Namespace-Name ‚Persoon‘ konnte nicht gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis ?)

Der Name 'db' existiert im aktuellen Kontext nicht.

Meine volle Steuerung:

using OrgPlanTool.BestuurService; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using OrgPlanTool.Models.Bestuuur; 
using System.Net; 
using System.Data.Entity; 
using System.Data; 

namespace OrgPlanTool.Controllers 
{ 

public class BestuuurController : Controller 
{ 
    public ActionResult BestuuurView() 
    { 

     BestuurService.BestuurServiceClient client = new BestuurService.BestuurServiceClient(); 

     // BestuuurModel model = new BestuuurModel(); 
     //model.bestuur = client.GetBestuurByNaam(2); 
     BestuurModel2 model = new BestuurModel2(client.GetBestuurByOrganisatieId(17)); 
     return View(model); 
    } 

    public ActionResult BestuuurEdit(int id) 
    { 
     Persoon persoon = db.Persoon.Find(id); 
     if(persoon == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(persoon); 
     //BestuurService.BestuurServiceClient client = new BestuurService.BestuurServiceClient(); 
     //BestuurModel2 model = new BestuurModel2(client.GetBestuurByOrganisatieId(17)); 


     //return View(model); 
    } 
} 
} 
+0

, wo Sie db-Objekt erstellt ...? –

+0

Nirgendwo kann ich 'public PlanToolEntities db = new PlanToolEntities();' aus irgendeinem Grund nicht verwenden. – Lucafraser

+1

Wo erstellen Sie eine Person oder ein db-Objekt? Schau unter Modelle, die du dort vielleicht erstellt hast. Wenn Sie eine Modell/db-Variable nicht verwenden können, bedeutet dies, dass Sie sie nicht erstellt haben. – AliK

Antwort

0

Sie sollten Konstruktor Methode wie folgt schreiben, um Ihre db

public class BestuuurController : Controller 
{  
    BestuuurController(PlanToolEntities context) 
    { 
     db = context; 
    } 

    PlanToolEntities db; 
} 
+0

Wo soll ich das hinstellen? Denn wenn ich "Bestuuurcontroller: Controller" dadurch ersetze bekomme ich Fehler – Lucafraser

+0

in deiner Bestuuurcontroller Klasse – Kahbazi

+0

Es gibt mir jetzt diesen Fehler: "Der Typ oder Namespace Name 'PlanToolEntities' konnte nicht gefunden werden (fehlt eine using Direktive oder ein Referenz?) " – Lucafraser

0

Sie müssen erstellen Sie Ihre db Kontext an die Steuerung zu übergeben. In einem einfachen Tutorial ist es wahrscheinlich so etwas wie folgt aus:

public class BestuuurController : Controller 
{ 
    private PlanToolEntities db = new PlanToolEntities(); \\ <- at minimum this should be added 
0

Sollte soetwas wie dieses

public ActionResult BestuuurEdit(int id) 
    { 
       using (var db = new PlanToolEntities()) 
       { 
        Persoon persoon = db.Persoon.Find(id); 
         if(persoon == null) 
         { 
          return HttpNotFound(); 
         } 
         return View(persoon); 
       } 
} 
+0

Ich muss eine DbContext-Datei erstellen, aber ich weiß nicht, wo ich sie platzieren soll. – Lucafraser