2017-06-10 1 views
0

Ich verwende LINQ Self Join Query, um Daten in der Ansicht anzuzeigen. Meine SQL Tabelle enthält einige Mitarbeiterdetails. Ich muss Employee-Manager innerhalb der DropDownListFor Kontrolle zeigen. Ich habe diese Abfrage ausprobiert und es funktioniert, allerdings nicht so, wie ich es möchte. Die Abfrage zeigt Employee-Manager wie in { EmployeeManagerID = Roger } an, aber es sollte nur Roger angezeigt werden. Was ist falsch an der Abfrage unten?asp.net-MVC Self Join in LINQ-Abfrage

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

        }; 

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

Aussicht:

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

    </div> 

Die Mitarbeiter Tabelle:

EmpID Name EmployeeManagerID 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 
+0

Wo ist Ali in Ihrer Tabelle? –

+0

@The_Outsider sorry 'Roger' not ali – ahosam

+0

Mögliches Duplikat von [LINQ-Query selbst beitreten und Ansicht zurückgeben] (https://Stackoverflow.com/questions/17610890/self-join-in-linq-query-and-return- view) –

Antwort

1

Sie passieren und eine Liste von anonymen Typ zum SelectList, so dass er nicht weiß, wie um zu zeigen, es.

Sie sollten nur die Name Eigenschaft auswählen und eine Liste von Strings haben:

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

btw, der zweite Parameter auf dem SelectList ist die selectedValue, "Name" nicht hier angebracht scheint.

+0

jetzt habe ich Problem, ich habe nicht EmployeeManagerID in der Rückseite des Namens der EmployeeManagerID ich Gesicht Problem, wenn ich versuche, neuen Datensatz die EmployeeManagerID = Null einen Ratschlag einzufügen – ahosam