Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Retornar apenas os dados de FilmeAtor

Oi, se eu quiser por exemplo retornar apenas os valores de id_filme, id_ator e last_update da tabela filme_ator, sem precisar ir buscar ela em outra tabela, como eu faço? sei que posso pegar a shadow property mas teria outra forma?

Queria assim por exemplo

var filmeator = contexto.FilmeAtor.First();

se eu fizer isso a propriedade ator e filme estarão nulas, o que me obrigaria a colocar a tabela ator e filme no select, o que ia trazer todas as informacoes, sendo que eu só preciso da informacao da tabela filmeator que ja esta la, só que ela é uma shadow property, tentei declarar ela na classe pra nao ser mais shadow property mas ai o codigo nao funciona. Não sei se fui claro com a dúvida.

6 respostas

Oi, sei que é muita coisa mas conseguiria colocar seu código e a estrutura de sua tabela aqui. É que fica difícil de imaginar como está o seu programa.

Oi, é que assim, eu estou seguindo as aulas mas estou utilizando MySQL no lugar do SQL server, e estou usando outra versão do EF Core, por que o programa que estou fazendo é em ASP NET. Eu tenho uma tabela pedido_itens, que possui um id, um id_produto, um id_pedido e quantidade. Como o professor na aula colocou o id_ator e id_filme como shadow property, eu fiz o mesmo com a minha classe de pedidoitens. porem eventualmente eu gostaria de exibir apenas codigo do produto, quantidade e codigo do pedido, sem precisar dar include nas tabelas relacionadas

tabela itensPedido
    id
    id_pedido
    id_produto
    quantidade
  public class PedidoItens
    {
        public Pedido Pedido { get; set; }

        public Produto Produto { get; set; }

        public int Quantidade { get; set; }
    }
modelBuilder.Entity<PedidoItens>()
               .ToTable("pedido_itens");

            modelBuilder.Entity<PedidoItens>()
                .Property<int>("id")
                .IsRequired();

            modelBuilder.Entity<PedidoItens>()
                .Property<int>("id_pedido")
                .IsRequired();

            modelBuilder.Entity<PedidoItens>()
                .Property<string>("id_produto")
                .HasColumnType("varchar(20)")
                .IsRequired();


            modelBuilder.Entity<PedidoItens>()
                .Property(pi => pi.Quantidade)
                .HasColumnName("quantidade")
                .IsRequired();


            modelBuilder.Entity<PedidoItens>()
                .HasOne(pi => pi.Pedido)
                .WithMany(p => p.PedidoItens)
                .HasForeignKey("id_pedido");

            modelBuilder.Entity<PedidoItens>()
               .HasOne(pi => pi.Produto)
               .WithMany(p => p.PedidoItens)
               .HasForeignKey("id_produto");

        }

Ok, mas qual é essa outra tabela que você se refere na primeira pergunta? Teria como colocar a estrutura dela também por gentileza.

E eu recomendo usar os mesmos programas do curso pois eles foram previamente testados pelo instrutor e sua equipe. Hoje em dia o que mais vejo nesse fórum é pessoas com problemas de infraestrutura ao invés de problemas de lógica :) .

solução!

Dessa forma:

public class PedidoItens
 {
      Public int PedidoId { get; set; }
      Public Pedido Pedido { get; set; }

       Public int ProdutoId { get; set; }
       Public Produto Produto { get; set; }

       Public int Quantidade { get; set; }
}

O entity traz os dados dos ids preenchidos e deixa os objetos no proxy para serem buscados caso você deseje.

E ai @Rafael, fala para gente se conseguiu resolver o problema!

desculpa galera, estava viajando, vou chegar em casa hj e ver se era isso que eu queria