How is the syntax or how do I convert a multi-joins query to a search in my application in C # asp.net mvc? Example: I have a form with the following controller
public ActionResult Pesquisa(int id = 0)
{
var resultado = context.Graduacoes.Include(e => e.Cursos).Where(e => e.Id == id).ToList();
ViewBag.Graduacoes = new SelectList(db.Graduacoes, "Id", "Nome");
return View(resultado);
}
I need the user to select the graduation from the list and click on 'Search' to return the name and other information of the individuals that have that graduation. In the bank I would do so:
select e.Id, c.Nome from Curso c
inner join Escolaridade e
on e.Id = NívelId
Models
public class Graduacao
{
public int Id { get; set; }
[Required(ErrorMessage = "O Nome é obrigatório.")]
[StringLength(50, ErrorMessage = "O nome pode ter no máximo 50 caracteres.")]
public string Nome { get; set; }
[Range(0, 20, ErrorMessage="O Nível deve ser um número positivo até 20.")]
public int Nível { get; set; }
public virtual ICollection<Curso> Cursos { get; set; }
}
public class Curso
{
public int Id { get; set; }
[Required(ErrorMessage = "O Nome é obrigatório.")]
[StringLength(50, ErrorMessage = "O Nome pode ter no máximo 50 caracteres.")]
public string Nome { get; set; }
[Required(ErrorMessage = "A Instituição é obrigatória.")]
[StringLength(50, ErrorMessage = "A Instituição pode ter no máximo 50 caracteres.")]
public string Instituição { get; set; }
[Required(ErrorMessage = "O Nível do curso é obrigatório.")]
public int? NívelId { get; set; }
public virtual Escolaridade Nível { get; set; }
View
@model IEnumerable<Competências.Models.Graduacao>
<title>Pesquisa por Graduação </title>
<div>
@using (Html.BeginForm())
{
<div class="form-group">
@Html.DropDownList("Graduacoes")
</div>
<button type="submit" id="pesquisar" class="btn btn-primary btn-xs">Buscar</button>
}
</div>
<div>
<table>
@{
if (Model != null)
{
foreach (var item in Model)
{
<tr>
<th>Nome </th>
</tr>
<tr>
<td width="30%">@item.Nome</td>
</tr>
}
}
}
</table>
</div>
I wanted here, when choosing a graduation for example "High School" I return the name of all the courses registered with high school. I want to return more things, but I summed up for that.