2017-03-31 8 views
0

Ich bin neu in MVC und ich studiere gerade Entity Framework als eine Möglichkeit, Daten aus einer Datenbank zu extrahieren.ASP.NET MVC DbContext

public ActionResult Index() 
{ 
    EmployeeContext employeeContext = new EmployeeContext(); 
    Employee[] employees = employeeContext.Employees; 
    return View(); 
} 

Aber ich bin kindda verwirrt in welcher Variable soll ich meine employeeContext.Employees so dass nach, dass ich es zu der Ansicht gelangen kann. Ich dachte etwas wie Array.

+1

Ich verstehe nicht, was Sie fragen. Warum können Sie Ihre Variable 'employees' nicht an die View übergeben? Was ist das eigentliche Problem? – David

+0

Rückansicht (Mitarbeiter); nicht sicher, warum Sie vielleicht ein Array wollen, es sei denn, Ihre Sicht erfordert es speziell? –

+1

Ich verstehe auch nicht, was das Problem ist. Was hindert Sie daran, es an die Ansicht zu übergeben? – Amy

Antwort

1
  1. Sie erhalten einen Typenkonflikt auf den Employee[] employees = employeeContext.Employees weil employeeContext.Employees ein DbSet<Employee> sind und kein Array.
  2. Sie müssen ein Modell an Ihre Sicht übergeben, Sie können dies mit der Überladung der Methode View() tun.
  3. Sie müssen die DbContext in einem using Block entsorgen, (es implementiert IDisposable und Sie sollten für fast alles, was das Muster folgen, die diese Schnittstelle implementiert Ressourcen, um sicherzustellen, befreit werden, wenn nicht in Gebrauch mehr)

Auch wollen Sie wahrscheinlich wirklich nicht alle Ihre Mitarbeiter jedes Mal übergeben, was ist, wenn es Tausende gibt?

Aktualisierter Code.

public ActionResult Index() 
{ 
    using(EmployeeContext employeeContext = new EmployeeContext()) 
    { 
     Employee[] employees = employeeContext.Employees.ToArray(); // now it will return an array 
     return View(employees); // pass employees to your view 
    } 
} 
+0

für jetzt experimentiere ich nur :) deshalb gebe ich alles weiter – peter