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?