Como obter referência a um objeto pai relacionados ao selecionar uma lista de objetos filho usando estrutura de entidade
-
08-07-2019 - |
Pergunta
Usando EF como é que os valores de acesso i em uma propriedade pai ao acessar uma lista de objetos filho.
i. Eu tenho um objeto de projeto e objeto Timesheet
Project
Id
nome
...
TimeSheet
projectId
UserId
data
TimeSpent
...
Eu entendo como voltar um projeto e seus Timesheets relacionados, mas o que se eu quiser voltar todos os quadros de horários para um determinado usuário e, em seguida, simplesmente exibir o nome do projeto com cada registro de horários.
por exemplo. ProjectName, Data, TimeSpent
É melhor prática para criar uma nova entidade para moldar que conjunto de resultados ou devo apenas ser capaz de retornar IEnumerable e tenha acesso ao campo .Project.Name.
Este é super fácil usando LINQ to SQL ou apenas em linha reta até ADO.net/SPs etc, mas a sua me matando na EF ..
Todas as idéias?
Solução
As crianças sempre têm uma relação com seus pais. No seu caso, é provavelmente chamado algo como "TimeSheet.Project". Assim, você pode escrever uma consulta como:
var q = from u in Context.Users
where u.UserId == userId
from ts in u.TimeSheets
select new
{
ProjectName = ts.Project.Name,
Date = ts.Date,
TimeSpent = ts.TimeSpent
};