我正在使用LINQ Self Join Query
在视图上显示数据。我的SQL
表包含一些员工详细信息。我需要在Employee-Manager
控件中显示DropDownListFor
。我已经尝试过这个查询并且它有效,但不是我想要的方式。该查询会在Employee-Manager
中显示{ EmployeeManagerID = Roger }
,但它应仅显示Roger
。下面的查询有什么问题?
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");
观点:
<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>
员工表:
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 :(得分:1)
您正在向SelectList
传递匿名类型列表,因此它不知道如何展示它。
您应该只选择Name
属性并拥有字符串列表:
var empmngr = from m in db.Employes
join e1 in db.Employes on m.EmployeeManagerID equals e1.EmpID
select e1.Name;
顺便说一下,SelectList
上的第二个参数是selectedValue
,"Name"
似乎不合适。