1
resposta

Como ajustar o retorno de DbSet com SQL Server

Pessoal, fazendo o curso e usando o SqlServer fiquei com uma duvida.

var resultado = _db.Sessao.ToList(); -> quando uso dessa maneira o retorno é o esperado que é uma lista de Sessão, até ai tudo bem, mas quando eu utilizo o código dessa maneira var resultado2 = _db.Sessao; onde eu penso que ele iria retornar um objeto sessão, ele retorna um objeto do seguinte tipo, Microsoft.EntityFrameWorkCore.DbSet.

Apenas percebi essa diferença quando precisava mapear o retorno, pois ele nao dava certo de maneira alguma, mesmo eu configurando meu profile, ja vi em alguns casos que ao usar algo parecido com esse tipo de conta var resultado2 = _db.Sessao; dentro das propriedades do retorno, eu teria algo como "resultado2.Entity", onde retornaria apenas os dados desejados.

Contudo fica minha duvida ainda sobre oque aconteceu, e qual seria a diferença entre os dois, onde ao meu ver nos dois casos deveria ter um retorno de Sessão.

1 resposta

Olá Isac

A diferença entre os dois retornos está relacionada ao tipo de dado que está sendo retornado. Quando você utiliza _db.Sessao.ToList(), você está retornando uma lista de objetos do tipo Sessao. Já quando você utiliza _db.Sessao, está retornando um objeto do tipo DbSet<Sessao>, que é uma classe específica do Entity Framework Core para representar uma coleção de entidades.

A diferença é importante porque cada tipo de dado possui métodos e propriedades diferentes. Por exemplo, ao utilizar _db.Sessao.ToList(), você pode acessar diretamente as propriedades da entidade Sessao, como resultado[i].Propriedade, onde i é o índice do objeto na lista. Já ao utilizar _db.Sessao, você precisa utilizar o método Find() para buscar uma entidade específica, por exemplo, _db.Sessao.Find(id).

No seu caso, ao utilizar _db.Sessao, você pode acessar as propriedades da entidade Sessao utilizando a propriedade Entity, como você mencionou. Por exemplo, resultado2.Entity.Propriedade.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.

Espero ter ajudado e bons estudos!