Olá pessoal! Olha eu aqui mais uma vez!
Agora venho com uma pergunta que parece básica, mas estou quebrando a cabeça para resolver.
Como posso pegar o valor de um atributo de uma entidade via Properties Navigations?
Exemplo:
Eu tenho as classes:
public class Budget
{
public Guid Id {get; set;}
... // Outros atributos
//Propriedade de Relacionamento
public IEnumerable<BudgetItem> BudgetItems {get; set;}
}
public class BudgetItem
{
public Guid Id {get; set;}
public string NameItem {get; set;}
... // Outros atributos
//ForeingKey
public Guid BudgetId {get; set;}
//Propriedade de Navegação
public Budget Budget {get; set;}
}
Em minha camada de Infra tenho todo o mapeamento. Funciona perfeito. O CRUD é realizado como previsto e no caso, é persistido no banco apenas os "Ids" da entidade. Nada fora do padrão. Acontece que, eu quero mostrar em minha View>Index uma lista
de BudgetItem e para qual cada qual Budget cada um está relacionado.
Na consulta normal é apresentado assim:
Tabela na View
BudgetItem | Budget - Observação: é apresentado o Guid salvo
Item 1 | a6fa353b-e55b-42f3-92f2-17cecda4725d
Item 2 | c7b90b8e-4fd1-4422-8c11-bb5fbaae7f05
O que preciso é que mostre desse jeito:
BudgetItem | Budget
Item 1 | Nome do Orçamento
Item 2 | Nome do Orçamento
Em outras aplicações (EF6 e Windows Forms) eu apenas carregava fazia uma consulta simples tipo:
public IEnumerable<BudgetItem> GetByBudgetName(budgetName)
{
return _context.ButgetItem.Where(c => c.Budget.Name.Equals(budgetName));
}
No entanto no ASP.NET Core 2.0 isso não funciona. Simplesmente não consigo acessar dados de outra classe/tabela por meio das propriedades de navegação.
Os nobres amigos poderiam me ajudar com isso!
Desde já agradeço.