Amigo, quando você utiliza o NEW você estará criando um novo objeto em memória, baseado na sua COnsulta em LINQ, você poderá criar um objeto baseado em uma entidade já existente ou então criar uma classe
anonima, por exemplo:
//Instanciando a classe usuário
var query = from c in ex.Pessoa
select new Usuario()
{
Id = c.Id,
Nome = c.Nome
};
//Criando um tipo anônimo
var query2 = from c in ex.Pessoa
select new
{
Id = c.Id,
Nome = c.Nome
};
A desvantage principal da utilização de tipos anônimos é que você não consegue utiliza-los em métodos diferentes passando via parâmetro.
a não utilização do NEW, serve para você retornar os objetos capturados durante a sua consulta ou então apenas uma única propriedade do mesmo:
//Retornando tudo que foi consultado
var query = from c in ex.Pessoa
select c;
//Retornando uma unica propriedade
var query2 = from c in ex.Pessoa
select c.Id;
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)