Usuário com melhor resposta
Unable to create a constant value of type Entity

Pergunta
-
Estou tentando carregar uma lista com Linq e Entity dessa maneira:
using (WEBEntities c = new WEBEntities()) { var evento = (from e in c.Evento where e.IdEvento == new Guid(codigo) select new VOEvento { IdEvento = e.IdEvento, CodEvento = e.CodEvento, Nome = e.Nome, ListLocal = Local.Busca(new Guid(codigo)) // Evento carrega lista de Locais }).ToList(); return evento.FirstOrDefault(); }
porém recebo o erro:
Unable to create a constant value of type ''. Only primitive types ('such as Int32, String, and Guid') are supported in this context.
COmo POsso carregar uma lista dentro do Linq Entity ?
Respostas
-
Amigo, o Entity Framework é cheio de restrições que podem até parecer estranhas, mas tente assim:
using (WEBEntities c = new WEBEntities()) { var evento = (from e in c.Evento where e.IdEvento == new Guid(codigo) select new VOEvento { IdEvento = e.IdEvento, CodEvento = e.CodEvento, Nome = e.Nome }).ToList(); foreach (VOEvento v in evento) v.ListLocal = Local.Busca(new Guid(codigo)); return evento.FirstOrDefault(); }
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Olavo Oliveira NetoModerator terça-feira, 7 de junho de 2011 17:40
- Marcado como Resposta pcclaro quinta-feira, 9 de junho de 2011 17:49
Todas as Respostas
-
Amigo, o Entity Framework é cheio de restrições que podem até parecer estranhas, mas tente assim:
using (WEBEntities c = new WEBEntities()) { var evento = (from e in c.Evento where e.IdEvento == new Guid(codigo) select new VOEvento { IdEvento = e.IdEvento, CodEvento = e.CodEvento, Nome = e.Nome }).ToList(); foreach (VOEvento v in evento) v.ListLocal = Local.Busca(new Guid(codigo)); return evento.FirstOrDefault(); }
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Olavo Oliveira NetoModerator terça-feira, 7 de junho de 2011 17:40
- Marcado como Resposta pcclaro quinta-feira, 9 de junho de 2011 17:49
-
-
-
No meu ver, não é nenhum nem o outro, mas seria mais próximo de uma lmitação que um bug. Entenda que tudo que tudo que você faz com relação LINQ para EF, tem de ser transformado pela Framework em comandos SQL, por isso que alguns comandos não tem como ser interpretados em tempo de execução. Por exemplo se você fizer um código parecido mas para LINQ TO Objects, verá que e a mesma coisa irá funcionar sem problemas. Pois não existe Conversão SQL no meio.
List<Usuario> Usuarios = new List<Usuario>() { new Usuario{Id = 1, Nome="Olavo Oliveira Neto", dtNascimento = new DateTime(1986,3,11)}, new Usuario{Id = 2, Nome="John Doe", dtNascimento = new DateTime(1986,3,11)}, new Usuario{Id = 3, Nome="marty mcfly", dtNascimento = new DateTime(1986,3,11)}, new Usuario{Id = 4, Nome="Tyler Durden", dtNascimento = new DateTime(1986,3,11)}, new Usuario{Id = 5, Nome="Launchpad Mcquack", dtNascimento = new DateTime(1986,3,11)}, new Usuario{Id = 6, Nome="Goku", dtNascimento = new DateTime(1986,3,11)}, new Usuario{Id = 7, Nome="Kaneda Shōtarō", dtNascimento = new DateTime(1986,3,11)} }; var query = (from c in Usuarios select new Usuario() { Id = c.Id, Nome = c.Nome, Sistemas = Sistemas }).ToList();
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Olavo Oliveira NetoModerator terça-feira, 7 de junho de 2011 17:40
-
-
pcclaro, se funcionou e deu certo, você poderia marcar como resposta para que outras pessoas com a mesma dúvida possam saber como fazer ?
Obrigado
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)