Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

carlos.fernandes

[Resolvido] Listar relacionamento com entity

Recommended Posts

E ai pessoal, estou no começo dos meus estudos do Entity Framework e logo me surgiu um problema.

Tenho no meu controller a action Index onde retorno pra view a seguinte query do entity, onde db é o meu contexto:

db.Users.Find(userId).Products.ToList();

 

Mas no debug ele me retorna o seguinte: ArgumentNullException was unhandled by user code. Value cannot be null. Parameter name: source.

 

Meus modelos estão assim:

Produto

   public class Product
   {
       public int Id { get; set; }
       public string Name { get; set; }
       public string Description { get; set; }
       public float Price { get; set; }
       public int UserId { get; set; }
       [inverseProperty("Products")]
       public virtual User User { get; set; }
   }

 

Usuário

   public class User
   {
       public int Id { get; set; }
       public string Name { get; set; }
       public string Email { get; set; }
       public string HashedPassword { get; set; }
       public ICollection<Product> Products { get; set; }
   }

 

Alguma sugestão? É assim mesmo que eu listo os produtos de um usuário, ou estou fazendo tudo errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu trabalho diferente, crio uma classe com as propriedades que preciso. E crio minha "query".

Exemplo:

 

 using (suaEntities dc = new suaEntities())
           {
               List<SuaClasseNova> produtos = (from u in dc.Users
                                                      join p in dc.Product on u.Id equals p.UserId
                                                      select new SuaClasseNova
                                                      {
                                                          propriedade1 = u.campo1,
                                                          propriedade2 = p.campo2,
                                                      }).ToList();

               return produtos;
           }

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.