2017-06-10 1 views
0

Ich bin mit LINQ Selbst Join-Abfrage der Daten der dropdownlistFor Ansicht .my SQL-Tabelle anzuzeigen enthält einige Mitarbeiter Details:Asp.net-Mvc Display-Self-Join in dropdownlistFor Steuer

EmpID Name ManagerID Designation Phone Address 
    1 Mike 3   Developer 123456 Texas 
    2 David 3   RM   123456 Delhi 
    3 Roger NULL  GM   123456 Dallas 
    4 Marry 2   Developer 123456 NY 
    5 Joseph 2   Developer 123456 Singapore 

I zu schaffen versuchen OR Add new employee zu employee table, ich zeige ManagerID in dropdownlist html control und name von manager auch mit selbst beitreten diese self join wählen nur name der manager die probelm ist, wenn ich versuche, neue mitarbeiter ich kann nicht manager-id, um es einzufügen zum Angestelltentisch.

das ist meine Frage:

var empmngr = from m in db.Employes 
         join e1 in db.Employes on m.ManagerID equals e1.EmpID 
         select 
         e1.Name; 



     ViewData["EmployeeManager"] = new SelectList(empmngr.ToList()); 

dies die Ansicht ist:

<div class="editor-label"> 
     EmployeeManager 
    </div> 
    <div class="editor-field"> 
     @Html.DropDownListFor(model => model.ManagerID , 
     ViewData["EmployeeManager"] as SelectList)    
    </div> 

das ist, wenn ich neue employe erstellen:

[HttpPost] 
    public ActionResult Create(EmployesContact emp) // Record Insert 
    { 
     var objEmployee = new Employe 
     { 
      Name = emp.Name,    
      ManagerID = emp.ManagerID , this is null when i try to insert new employee    

     }; 
    } 

Ich denke, das Problem, wenn ich bin versuchen, managerID mit Self-Join zu wählen, um es auf der Dropdownliste anzuzeigenFot-Steuerelement

irgendwelche Ratschläge Ich bin neu Sachen dank

Antwort

0

diese Antwort haben selbst verbinden und Anzeige MANAGERID und Name der Krippe in der html.dropdownlistfor Steuer ich die richtige Antwort für meine Frage bekommen:

 var empmngr = from m in db.Employes 
         join e1 in db.Employes on m.ManagerID equals e1.EmpID 
         select new { 
          e1.Name , 
          m.ManagerID 
        }; 

     ViewData["EmployeeManager"] = new SelectList(empmngr.ToList(), "ManagerID ", "Name");