Em algum curso ensina a usar o join na consulta feita com o método? No primeiro curso do Entity ensina a usar o Include, é a mesma coisa?
Em algum curso ensina a usar o join na consulta feita com o método? No primeiro curso do Entity ensina a usar o Include, é a mesma coisa?
Olá, Janile
A sintaxe de método não é muito legível para joins, e pode ficar bem confusa quando você decide fazer join com várias entidades.
Por exemplo, a seguinte sintaxe de consulta...
var result = from tar in contexto.Tarefas
join stat in contexto.Status
on tar.StatusId equals stat.Id
select new { Tarefa = tar, Status = stat };
... é equivalente, na sintaxe de método (lambda):
var result = contexto.Tarefas
.Join(contexto.Status,
tar => tar.StatusId,
stat => stat.Id,
(tar, stat) => new
{
Tarefa = tar,
Status = stat
});
Já o Include
permite que a consulta SQL gerada traga no seu resultado (isto é, na cláusula SELECT) as informações das entidades associadas. Por exemplo, a consulta ...
var tarefas =
from tar in contexto.Tarefas
.Include(t => t.Status)
select tar;
...irá garantir que o resultado (tarefas) conterá não só os dados da entidade primária (Tarefa) mas também trará as informações da entidade relacionada na propriedade de navegação Tarefa.Status
. Isso permite acessar as informações de ambas as entidades:
var tarefaId = tar.Id;
var tarefaDescricao = tar.Descricao;
var statusId = tar.Status.Id;
var statusNome = tar.Status.Nome;