Uma pergunta: seria má prática deixar apenas a propriedade SchoolId no Student, e não colocar a propriedade de navegação em si (School)? Aí em uma Clean Architecture, por exemplo, deveríamos recuperar a propriedade School por meio de SchoolId. Isso seria ruim? É melhor se usar a propriedade de navegação mesmo>?
Então, não é questão de boa ou má prática, Vitor. Se em alguma situação você precisar, por exemplo, puxar uma lista de estudantes e junto deles trazer dados da escola (ou unidade escola) para montar um View Model, percebe que com a propriedade de navegação vai ser muito mais fácil montar o objeto atual em apenas uma consulta? Abraço.
@@nextwave.education ah sim, realmente seria mais fácil! Aliás, o objeto (navigation property) ocuparia algum espaço no banco de dados ou seria automaticamente atribuído conforme a foreign key?
@@vitorbarcelos1669 não, no momento de um Include (utilizando LINQ) o EF Core preencheria o objeto de navegação através de uma cláusula JOIN adicionada na consulta SELECT normal. De maneira automática, apenas baseado na chave estrangeira.
Uma pergunta: seria má prática deixar apenas a propriedade SchoolId no Student, e não colocar a propriedade de navegação em si (School)? Aí em uma Clean Architecture, por exemplo, deveríamos recuperar a propriedade School por meio de SchoolId. Isso seria ruim? É melhor se usar a propriedade de navegação mesmo>?
Então, não é questão de boa ou má prática, Vitor.
Se em alguma situação você precisar, por exemplo, puxar uma lista de estudantes e junto deles trazer dados da escola (ou unidade escola) para montar um View Model, percebe que com a propriedade de navegação vai ser muito mais fácil montar o objeto atual em apenas uma consulta?
Abraço.
@@nextwave.education ah sim, realmente seria mais fácil! Aliás, o objeto (navigation property) ocuparia algum espaço no banco de dados ou seria automaticamente atribuído conforme a foreign key?
@@vitorbarcelos1669 não, no momento de um Include (utilizando LINQ) o EF Core preencheria o objeto de navegação através de uma cláusula JOIN adicionada na consulta SELECT normal. De maneira automática, apenas baseado na chave estrangeira.
@@nextwave.education muito obrigado por suas respostas!
@@vitorbarcelos1669 Vamos que vamos! Vem na live de hoje? ;)