Что возвращает this.datacontext.Trees.ToList().Count()
?
Может быть, это связано с вашим сопоставлением в базе данных? Первый пример преобразует метод Contains («bad») обратно в SQL, который может быть без учета регистра, и возвращает строки, содержащие «BAD» или «Bad». Второй пример не чувствителен к регистру.
Было бы интересно посмотреть, какие значения RiskRating вернулись в базу данных и как выглядит выполняемый SQL-запрос.