Excepción de comparación de cadenas dentro de Entity Framework FirstOrDefault
Estoy consultando una tabla usando Entity Framework. La primera parte del código fue lo que escribí, la segunda parte fue lo que ReSharper sugirió que yo también lo refactorice. El primero devuelve correctamente nulo como debería si la clave no existe, pero el segundo arroja una excepción.
Esto se intentó con 0-1 registros en la tabla (todas las columnas están marcadas como NOT NULL)
Código que funciona:
context.brandlink.FirstOrDefault(x => x.ManufacturerKey.ToLower() == manufacturerKey.ToLower());
y código que no funciona:
context.brandlink.FirstOrDefault(x => String.Equals(x.ManufacturerKey, manufacturerKey, StringComparison.InvariantCultureIgnoreCase));
Excepción lanzada:
Número incorrecto de argumentos suministrados para la llamada al método 'Boolean Equals (System.String, System.String, System.StringComparison)'
Entonces mi pregunta es: ¿cuál es la diferencia entre las dos expresiones?