Мне нужно преобразовать статический запрос привязки сложной модели в динамический запрос LINQ в действии контроллера, чтобы получить данные из базы данных через EF
EF таблицы Department и StdDetail:
public partial class Department
{
public Department()
{
this.StdDetails= new HashSet<StdDetails>();
}
public int ID { get; set; }
public string DepartName { get; set; }
public string Description { get; set; }
public virtual ICollection<StdDetails> StdDetails{ get; set; }
}
И
public partial class StdDetails
{
public int ID { get; set; }
public int Name { get; set; }
public int Depart_ref_id { get; set; }
public virtual Department Department { get; set; }
}
Это мой ViewModel
public class DepartmentViewModel
{
public int DepartmentId { get; set; }
public string Name {get; set;}
public List<StdListModel> stdList { get; set; }
public DepartmentViewModel()
{
stdList = new List<StdListModel>();
}
}
public class StdListModel
{
public int ID { get; set; }
public string Name { get; set; }
}
и статический запрос контроллера выглядит так:
public IActionResult Index()
{
List<DepartmentViewModel> list = new List<DepartmentViewModel>();
DepartmentViewModel dept = new DepartmentViewModel();
dept.DepartmentId = 1;
dept.Name = "Department 1";
dept.stdList.Add(new StdListModel() { ID = 1, Name = "Some Name" });
dept.stdList.Add(new StdListModel() { ID = 2, Name = "Another Name" });
list.Add(dept);
return View(list);
}
Я пробовал что-то подобное, но это не работает. У меня нет идеи получить список студентов по каждому идентификатору кафедры.
list = (from d in Context.Departments
join s in Context.StdDetails on d.ID equals s.Depart_ref_id
select new DepartmentViewmodel{
DepartName = d.DepartName,
DepartID = d.ID,
stdList.Name = s.Name
}).ToList();
Спасибо