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?