String Comparison exception within Entity Framework FirstOrDefault

Viewed 2130

I'm querying a table using Entity Framework. The first bit of code was what I wrote, the second bit was what ReSharper suggested I refactor it too. The first one gracefully returns null as it should if the key doesn't exist, but the second throws an exception.

This was attempted with 0-1 records in the table (all of the columns are marked as NOT NULL)

Code that works:

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

and code that doesn't work:

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

Exception thrown:

Incorrect number of arguments supplied for call to method 'Boolean Equals(System.String, System.String, System.StringComparison)'

So my question is: what is the difference between the two expressions?

1 Answers
Related