#c# #asp.net-mvc #linq #list
#c# #asp.net-mvc #linq #Список
Вопрос:
У меня есть метод, который получает имя и идентификатор проекта на основе идентификатора клиента с помощью Linq
public SelectList GetClientProjects(int clientId){
IEnumerable<SelectListItem> clientProjectsList =
(from client in res.CLIENT
join clientProj in res.CLIENT_PROJECT
on client.ID equals clientProj.CLIENT_ID
join project in res.PROJECT
on clientProj.PROJ_ID equals project.ID
where client.IS_DELETED == "N" amp;amp; clientProj.IS_DELETED
== "N" amp;amp; project.IS_DELETED
== "N" amp;amp; client.ID == clientId
select project).AsEnumerable().Select(projs => new SelectListItem() {
Text=projs.NAME, Value=projs.ID.ToString() });
return new SelectList(clientProjectsList, "Value", "Text", PROJ_ID);
}
Теперь я получаю идентификатор клиента, выполнив следующий запрос
var clientDetails = reslandentity.CLIENT.
Where(m => m.SUBSCRIBER_ID == userid).ToList();
Таким образом, как можно получить имя проекта и идентификатор проекта и как привязаться к выпадающему списку с помощью ProjectID и заполнить имена проектов.
Ответ №1:
var clientDetails = reslandentity.CLIENT.Where(m => m.SUBSCRIBER_ID == userid);
List<SelectListItem> items = new List<SelectListItem>();
foreach (var item in clientDetails)
{
var clientProjectsList =
(from client in reslandentity.CLIENT
join clientProj in reslandentity.CLIENT_PROJECT
on client.ID equals clientProj.CLIENT_ID
join project in reslandentity.PROJECT
on clientProj.PROJ_ID equals project.ID
where client.IS_DELETED == "N" amp;amp; clientProj.IS_DELETED
== "N" amp;amp; project.IS_DELETED
== "N" amp;amp; client.ID == item.ID
select project).FirstOrDefault();
if (clientProjectsList != null)
{
items.Add(new SelectListItem() { Text = clientProjectsList.NAME, Value = clientProjectsList.ID.ToString() });
}
}
SelectList list=new SelectList(items,"Value","Text",model.PROJ_ID);
ViewBag.ProjectsList = list;
Привязать к выпадающему списку, например
@Html.Dropdownlistfor(m=>m.Proj_Id,(SelectList)ViewBag.ProjectsList)
Надеюсь, вы получили ожидаемый результат.