Я пытаюсь создать раскрывающийся список, чтобы перечислить имя отдела, имеющее право видеть пользователя, вошедшего в систему. Я передаю идентификатор пользователя, DepotIds. Отдел должен быть указан против пользователя и хранилища. Мой запрос Linq не работает, пожалуйста, помогите, у меня есть следующая модель
public class Depot
{
public int Id { get; set; }
public string DepotName { get; set; }
}
public class Department
{
public int Id { get; set; }
public string DepartmentName { get; set; }
}
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
}
public class USerDepotDepartmentLink
{
public int UserId { get; set; }
public int DepotId { get; set; }
public int DepartmentId { get; set; }
public IsDefault { get; set; }
}
Из приведенной выше модели у меня есть следующие записи
Depot Record
Id = 1; DepotName = Depot1
Id = 2 ; DepotName = Depot2
Department Record
Id = 1; DepartmentName = Sales
Id = 2 ; DepartmentName = Account
Id = 3 ; DepartmentName = Marketing
User Record
Id = 1; Username = User1
Id = 2; Username = User2
USerDepotDepartmentLink
UserId = 1, DepotId=1, DepartmentId =1 , IsDefault = 1
UserId = 1, DepotId=1, DepartmentId =2 , IsDefault = 0
UserId = 2, DepotId=1, DepartmentId =2 , IsDefault = 0
UserId = 2, DepotId=1, DepartmentId =3 , IsDefault = 0
UserId = 2, DepotId=2, DepartmentId =1 , IsDefault = 0
UserId = 2, DepotId=2, DepartmentId =2 , IsDefault = 1
UserId = 2, DepotId=2, DepartmentId =3 , IsDefault = 0
из приведенного выше примера для UserId 1. В раскрывающемся списке отдела должно быть «Продажи, счета» и выбран «Отдел продаж».
Для userId 2 раскрывающийся список «Отдел» должен быть «Продажи, учетные записи, маркетинг», а выбранный отдел — «Учетная запись».
Я создал запрос Linq, приведенный ниже, но не работающий
public IEnumerable<SelectListItem> GetLocationsByDepotForDropdown(int userId, int[] depotNo)
{
List<SelectListItem> locations = (from dpt in goContext.goDepartment
join dep in goContext.goUserDepartment
on dpt.DepartmentID equals dep.DepartmentID
where dep.UserID == userId
&& dpt.IsDeleted == false
select new SelectListItem
{
Value = dpt.DepartmentID.ToString(),
Text = dpt.DepartmentName
}).Where(i => depotNo.Contains(i.Value)).
ToList<SelectListItem>();
locations.Insert(0, new SelectListItem
{
Value = "0",
Text = "-- Select --"
});
return locations;
}
Пожалуйста, помогите найти запрос linq из моего примера