Exceção de comparação de string no Entity Framework FirstOrDefault

Estou consultando uma tabela usando o Entity Framework. O primeiro pedaço de código foi o que eu escrevi, o segundo foi o que ReSharper sugeriu que eu refatorasse também. O primeiro retorna graciosamente nulo como deveria se a chave não existir, mas o segundo gera uma exceção.

Isso foi tentado com 0-1 registros na tabela (todas as colunas estão marcadas como NOT NULL)

Código que funciona:

context.brandlink.FirstOrDefault(x => x.ManufacturerKey.ToLower() == manufacturerKey.ToLower());

e código que não funciona:

context.brandlink.FirstOrDefault(x => String.Equals(x.ManufacturerKey, manufacturerKey, StringComparison.InvariantCultureIgnoreCase));

Exceção lançada:

Número incorreto de argumentos fornecidos para a chamada ao método 'Boolean Equals (System.String, System.String, System.StringComparison)'

Então, minha pergunta é: qual é a diferença entre as duas expressões?