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?

questionAnswers(7)

yourAnswerToTheQuestion