Arquivo da categoria ‘Desenvolvimento’
Curso de formação em .Net–Stefanini
Olá a todos,
Ontem teve fim uma experiência muito bacana que tive aqui na Stefanini: assumi, com apoio do time de arquitetura (Raphael Nascimento – @raPHaelrn, Felipe Castro – @felipec_castro e Victor Cavalcante – @vcavalcante), uma turma de formação de profissionais de análise e desenvolvimento na plataforma .Net.
A idéia era captar talentos do mercado e disseminar os conhecimentos e cultura do SDC (Software Delivery Center da Stefanini). Estudantes do 1º ao 3º semestre (se não me engano, estou certo moçada?).
Durante o curso, falamos de orientação à objeto, orientação à eventos, banco de dados, entre outras coisas… Desenvolvemos uma calculadora, um cadastro simples e por fim um “Bank line”. Foi tudo bem legal, eu curti muito a experiência e espero que, os que ainda posso chamar de “meus alunos”, também tenham gostado e que tenham suas expectativas atingidas.
Algo bem legal que posso contar é que eu costumava dizer que eu estava ensinando a eles “como não fazer” algumas coisas. Claro, com o objetivo de que eles buscassem estudar sobre qual seria a forma correta de chegar ao mesmo objetivo, que fossem atrás. O @vcavalcante fazia até algumas participações especiais nas aulas, chegando de surpresa e dizendo “É isso aí que ele está ensinando pra vocês? Está tudo errado!” – É claro que nestas aulas eu falava de HTML, JavaScript, ASP.Net WebForms ![]()
Abaixo, algumas fotos do último dia de aula. (Clique para ampliar)
Espero vê-los novamente num futuro próximo! Sucesso à todos e “ganbatte” *.
*Do japonês: Do your best, go for it (esforce-se, dê seu melhor)
LINQ To Entities e o método Contains, um contorno
Olá a todos,
Depois de muito tempo, volto a escrever. Tem sido uma dura correria que me impossibilitou de dar atenção a este valioso espaço. Porém, mais uma vez, prometo tentar reservar um pouco do meu tempo para enriquecer o conteúdo desta página.
Volto hoje com um assunto que não costumo discutir aqui no blog, que é codificação.
Ultimamente tenho ocupado quase que todo o meu tempo com estudos e discussões sobre a melhor forma de codificar algo. Um problema que encontrei dias atrás foi uma limitação do LINQ To Entities, que não implementou um método mapeado para a função “IN” do SQL. Um exemplo: quero obter todos os usuários do banco cujo ID é um dos números da sequência mística do seriado LOST, que é: 4, 8, 15, 16, 23, 42. A query SQL seria:
SELECT * FROM USER U WHERE U.ID IN (4, 8, 15, 16, 23, 42)
Em tese, uma expressão LINQ para fazer a mesma coisa seria mais ou menos assim:
string[] ids = { “4″, “8″, “15″, “16″, “23″, “42″ };
var users = (from t in _db.User where ids.Contains(t.Id.ToString()) select t).ToList();
Em tempo de compilação, tudo certo. Porém, ao executar este código, você receberá esta mensagem de erro:
LINQ to Entities does not recognize the method 'Boolean Contains(Int32)'
É possível estender as bibliotecas do LINQ para mapear a função, criar uma função ultra-complicada para fazer isso, mas há uma maneira de resolver com uma linha de código, que é:
var users = _db.User.Where("it.Id IN {" + string.Join(",", ids) + "}");
Atenção para a palavra chave “it”, ela representa sua entidade na query. Logo, Id é a propriedade.
Experimente!
[]‘s
Ricardo Serradas
