Возвращение двух результатов запроса Entity Framework вместе - PullRequest
0 голосов
/ 06 ноября 2019

Я новичок в ASP.NET (CORE) и Entity Framework! Я пытаюсь вернуть результаты двух отдельных запросов одновременно, используя фрагмент кода ниже. QueryToReturn - это класс, который включает в себя как класс projectGoal, так и класс projectType в виде списка. _context - это DbContext.

List<ProjectGoal> projectGoal = new List<ProjectGoal>();
List<ProjectType> projectType = new List<ProjectType>();

projectGoal = _context.ProjectGoal.ToList();
projectType = _context.ProjectTypes.ToList();

QueryToReturn FinalItems = new QueryToReturn();
FinalItems.projectGoal = projectGoal;
FinalItems.projectType = projectType;

return Ok(FinalItems);

Я делаю это правильно или мне что-то не хватает? Как это можно сделать с помощью LINQ? Заранее спасибо.

1 Ответ

0 голосов
/ 06 ноября 2019

Если я прав, вы хотите вернуть два класса в виде списков для просмотра.

Создайте дополнительный класс для объединения двух списков.

Модель

public class QueryToReturn
{
    public List<ProjectGoal> projectGoal { get; set; }
    public List<ProjectType> projectType { get; set; }
}

public class ProjectGoal
{
    public string somevariable { get; set; }
}

public class ProjectType
{
   public string somevariable2 { get; set; }
}

Создайте объект вашего мастер-класса и заполните 2 списка содержимым вашей базы данных.

Контроллер

public IActionResult Index()
{
        QueryToReturn FinalItems = new QueryToReturn();
        FinalItems.projectGoal = _context.projectGoal.ToList();
        FinalItems.projectType = _context.ProjectTypes.ToList();
        return View(FinalItems);
}

Используйте ваш объект в вашем представлении.

Представление

@model Projectname.Models.QueryToReturn

<select>
      @foreach (var item in Model.projectGoal)
      {
           <option>@item.somevariable</option>
      }
</select>

Я не уверен, насколько легко конвертировать ваш список сущностей в ваш класс. Но это должно работать. Вот так я справляюсь.

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