Como obter referência a um objeto pai relacionados ao selecionar uma lista de objetos filho usando estrutura de entidade

StackOverflow https://stackoverflow.com/questions/1438265

  •  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?

Foi útil?

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
        };
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top