Sintaxe dos métodos de extensão vs sintaxe de consulta
Estou tentando entender se há um bom momento para usar palavras-chave linq padrão ou métodos de extensão linq com expressões lambda. Eles parecem fazer a mesma coisa, apenas são escritos de forma diferente. É puramente uma questão de estilo?
var query = from p in Products
where p.Name.Contains("foo")
orderby c.Name
select p;
// or with extension methods:
var query = Products
.Where(p => p.Name.Contains("foo"))
.OrderBy(p => p.Name);
Eles são muito parecidos, com o segundo exemplo sendo um pouco mais conciso, mas talvez menos expressivo se você não souber o que o => está fazendo.
Além de escrever código conciso, existem outras vantagens em usar os métodos de extensão em oposição à sintaxe LINQ?