Nos projetos de desenvolvimento de software, é comum trabalharmos com entidades relacionadas, onde uma entidade pode possuir uma propriedade de navegação para outra entidade. Uma tarefa frequente é obter o valor de uma propriedade da entidade relacionada usando o recurso de propriedades de navegação. Neste artigo, exploraremos como fazer isso utilizando C#, LINQ, ASP.NET Core e expressões lambda.
Antes de mergulharmos nos detalhes, vamos entender o conceito de propriedades de navegação. Em um modelo de entidade-relacionamento, uma propriedade de navegação é uma propriedade em uma classe que representa um relacionamento com outra classe. Ela permite que possamos acessar os dados relacionados e, assim, facilita a navegação entre as entidades.
Para exemplificar o processo, vamos considerar um cenário hipotético em que temos duas entidades: “Order” (pedido) e “Customer” (cliente), onde um pedido pertence a um cliente. A classe “Order” possui uma propriedade de navegação chamada “Customer”, que representa o cliente associado ao pedido. Nosso objetivo é obter o nome do cliente para cada pedido em nossa aplicação ASP.NET Core usando LINQ e expressões lambda.
Primeiro, precisamos definir as entidades “Order” e “Customer” com suas propriedades correspondentes. A seguir, temos um exemplo de como elas poderiam ser definidas:
csharp
Copy code
public class Order
{
public int OrderId { get; set; }
public string OrderNumber { get; set; }
public int CustomerId { get; set; }
public Customer Customer { get; set; }
}
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
}
Agora, podemos usar LINQ para obter o nome do cliente para cada pedido. Vamos supor que tenhamos uma lista de pedidos chamada “ordersList”. O código a seguir demonstra como realizar essa operação:
csharp
Copy code
var customerNames = ordersList.Select(order => order.Customer.Name);
Nesse exemplo, usamos o método Select do LINQ para projetar o nome do cliente a partir da propriedade de navegação “Customer” de cada pedido na lista. A expressão lambda order => order.Customer.Name nos permite acessar o objeto “Customer” relacionado e, em seguida, obter o valor da propriedade “Name”.
Com essa simples linha de código, agora temos uma lista de nomes de clientes associados a cada pedido. Podemos usar essa lista para exibir os nomes em uma visualização ou realizar outras operações necessárias.
O uso de propriedades de navegação e LINQ com expressões lambda oferece uma maneira poderosa e concisa de obter valores de entidades relacionadas em um projeto ASP.NET Core. Essa abordagem simplifica a navegação pelos relacionamentos e nos permite acessar facilmente as propriedades desejadas.
Em resumo, neste artigo, exploramos como pegar o valor de uma entidade via propriedade de navegação usando C#, LINQ, ASP.NET Core e expressões lambda. Essa técnica é útil quando trabalhamos com entidades relacionadas e precisamos acessar informações específicas. Através do exemplo apresentado, esperamos que você tenha compreendido o processo e possa aplicá-lo em seus próprios projetos de desenvolvimento.