Mvc выберите данные второй таблицы с помощью linq
Привет, я новичок в mvc и linq. У меня есть 2 таблицы по отношению многие ко многим: 1)сотрудник 2)устройство
Выбирая сотрудника я хотел бы посмотреть его устройства:
-Марко -Франко
При выборе Marco должны появиться устройства, связанные с ним.
В sql я бы хотел вот что:
выберите Devices.nome из списка устройств, где Devices.id IN(выберите DeviceID из ImpiegatoDevices, где impiegatiID=id);
Что же мне делать?
Ниже моего кода
Спасибо
Эль
Что я уже пробовал:
Мой код (не работает):
Контроллер:
public ActionResult VediDevice(int id) { Impiegato impi = new Impiegato(); List<Device> ListDevice = new List<Device>(); using (DatabaseMVCCOntrolsEntities db = new DatabaseMVCCOntrolsEntities()) { ListDevice= db.Devices.Where(u => db.ImpiegatiDevice.Any(m => m.impiegatiID == id)).ToList(); //<---??? //or ListDevice= db.Devices.ToList().Where(u => u.item.Any(m => m.impiegatiID == id)).ToList(); //<---???? } return View(ListDevice); }
Класс устройства, добавил Я:
List<ImpiegatiDevice> item{get;set;}
VediDevice.cshtml по:
@model List<mvccontroltoolkit.models.device> @{ ViewBag.Title = "VediDevice"; } @foreach (var item in Model) { } <table class="table table-striped table-condensed"> <tbody> <tr> <th>NOME</th> </tr> <tr> <td>@Html.DisplayFor(modelItem => item.nome)</td> </tr> </tbody> </table>
Не работать.
Что же мне делать?
Спасибо
Эль
Mehul M Thakkar
Что не работает? вы получили какую-нибудь ошибку?
AleLo2014
использование ListDevice = db.Devices.Вызова метода toList().Где(u => u.itemma.Любой(m => m.impiegatiID == id)).Список();
я получаю эту ошибку:
Система.ArgumentNullException: 'Il valore non può essere null.
Ном параметро: источник'
Mehul M Thakkar
Он говорит имя параметра: источник, это означает, что устройства, которые вы извлекаете, являются нулевыми. сначала проверьте БД.устройства.ToList() имеет значение null, то не применяется предложение Where.
AleLo2014
В sql я бы хотел вот что:
выберите Devices.nome из списка устройств, где Devices.id IN(select DeviceID from ImpiegatoDevices where ImpiegatoDevices.impiegatiID=id);
Mehul M Thakkar
сначала вы выполняете ListDevice = db.Devices.ToList(); и посмотрите, что вы получаете в ListDevice.
AleLo2014
Выполнение ListDevice = db.Devices.Список();
Я получаю все устройства