2017-06-10 5 views
0

J'utilise LINQ auto Rejoindre requête pour afficher les données sur la vue dropdownlistFor .mon table sql contient quelques employés de détails:Asp.net-Mvc Affichage auto se joindre à un contrôle dropdownlistFor

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 

Je suis en train de créer ou Ajouter un nouvel employé à la table des employés, j'affiche ManagerID dans dropdownlist contrôle html et le nom de manager aussi avec moi-même joindre cette auto-joint sélectionner seulement le nom du manager le probelm est quand j'essaie d'insérer un nouvel employé je ne peux pas obtenir manager-id pour l'insérer à la table des employés.

ceci est ma requête:

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()); 

c'est la vue:

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

c'est quand je crée de nouveaux employe:

[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    

     }; 
    } 

Je pense que ce problème quand je suis essayer de sélectionner managerID avec auto-jointure pour l'afficher sur le contrôle dropdownlistFot

tous les conseils que je suis de nouvelles choses grâce

Répondre

0

cette réponse auto jointure et affichage ManagerID et nom de crèche dans le contrôle html.dropdownlistfor je reçois la bonne réponse pour ma question:

 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");