Запрос действия контроллера для привязки сложной модели в mvc - PullRequest
0 голосов
/ 09 ноября 2019

Мне нужно преобразовать статический запрос привязки сложной модели в динамический запрос 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();

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...