\"Contains\" in Entity Framework core should equivalent to the SQL %like% operator. Therefore \"Contains\" should be case insensitive however it is case sensitive! (at least
IQueryable.Where is executed in the database, so it is most likely to be case insensitive.
IQueryable.Where
IEnumerable.Where uses C# String.Contains, so it is case sensitive.
IEnumerable.Where
String.Contains
Read this answer: Returning IEnumerable vs. IQueryable