I wanted a linq query that shows the attributes of the availability table and the name of the respective catechist that is in the person table. In the index will appear:
Nome | AnoPastoral | DiaDisponivel | HoraDisponivel | Observacoes
I'm having difficulty in the query and I do not know how to display it in the index.
Models:
public partial class Pessoa {
[Key]
public int PessoaID { get; set; }
public String Nome { get; set; }
public String Morada { get; set; }
public String Localidade { get; set; }
public String CodPostal { get; set; }
public String Telemovel { get; set; }
public virtual Catequista Catequista { get; set; }
}
public partial class Catequista {
//chave primária e chave forasteira
[Key, ForeignKey("Pessoa")]
public int CatequistaID { get; set; }
public String Formacao_Eclisiastica { get; set; }
public String Catecismo_Pretendido { get; set; }
public String Data_Inicio_Atividade { get; set; }
public String ParoquiaInicioAtividade { get; set; }
// referencia os dados da 'pessoa' associada ao catequista
public virtual Pessoa Pessoa { get; set; }
}
public partial class Disponibilidade {
//chave primária
public int DisponibilidadeID { get; set; }
public String AnoPastoral { get; set; }
public String DiaDisponivel { get; set; }
public String HoraDisponivel { get; set; }
public String Observacoes { get; set; }
//chave estrangeira
public int CatequistaID { get; set; }
[ForeignKey("CatequistaID")]
public virtual Catequista Catequista { get; set; }
}
Controller:
public ActionResult Index()
{
var disponibilidade = (from d in db.Disponibilidade
join c in db.Catequista on d.CatequistaID equals c.CatequistaID
join p in db.Pessoa on c.CatequistaID equals p.PessoaID
where c.CatequistaID == d.CatequistaID
select new { Nome = p.Nome, AnoPastoral = d.AnoPastoral, DiaDisponivel = d.DiaDisponivel, HoraDisponivel = d.HoraDisponivel, Observacoes = d.Observacoes });
return View(disponibilidade.ToList());
}